Add templates/logger.py
This commit is contained in:
44
templates/logger.py
Normal file
44
templates/logger.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
from pybricks.tools import StopWatch
|
||||||
|
|
||||||
|
class Logger:
|
||||||
|
def __init__(self, verboseness=7):
|
||||||
|
self.time = StopWatch()
|
||||||
|
self.time.pause()
|
||||||
|
self.verboseness = verboseness
|
||||||
|
self.lvldict = {
|
||||||
|
0: "FATAL",
|
||||||
|
1: "ALERT",
|
||||||
|
2: "CRIT",
|
||||||
|
3: "ERR",
|
||||||
|
4: "WARNING",
|
||||||
|
5: "NOTICE",
|
||||||
|
6: "INFO",
|
||||||
|
7: "DEBUG"
|
||||||
|
}
|
||||||
|
|
||||||
|
def start(self):
|
||||||
|
self.time.reset()
|
||||||
|
self.time.resume()
|
||||||
|
|
||||||
|
def log(self, message, level, origin):
|
||||||
|
if level <= self.verboseness:
|
||||||
|
ms = self.time.time()
|
||||||
|
timestamp = "{:02d}:{:02d}.{:03d}".format(
|
||||||
|
(ms // 60000) % 60,
|
||||||
|
(ms // 1000) % 60,
|
||||||
|
ms % 1000
|
||||||
|
)
|
||||||
|
label = self.lvldict.get(level, "UNKNOWN")
|
||||||
|
padding = " " * (7 - len(label))
|
||||||
|
print("[{}] {}{} [{}] {}".format(timestamp, label, padding, origin, message))
|
||||||
|
def fatal(self, message, origin): self.log(message, 0, origin)
|
||||||
|
def alert(self, message, origin): self.log(message, 1, origin)
|
||||||
|
def crit(self, message, origin): self.log(message, 2, origin)
|
||||||
|
def err(self, message, origin): self.log(message, 3, origin)
|
||||||
|
def warning(self, message, origin): self.log(message, 4, origin)
|
||||||
|
def notice(self, message, origin): self.log(message, 5, origin)
|
||||||
|
def info(self, message, origin): self.log(message, 6, origin)
|
||||||
|
def debug(self, message, origin): self.log(message, 7, origin)
|
||||||
|
def crash(self, message, origin):
|
||||||
|
self.log(message, 0, origin)
|
||||||
|
raise FatalLoggerError("[FATAL] [{}] {}".format(origin, message))
|
||||||
Reference in New Issue
Block a user