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