Implement logging levels
This commit is contained in:
parent
94d6ae4101
commit
b013416e2f
|
@ -1,2 +1,6 @@
|
|||
INFO=0
|
||||
WARNING=5
|
||||
ERROR=10
|
||||
|
||||
from .log import Log
|
||||
from .logcat import LogCat
|
||||
|
|
|
@ -2,11 +2,13 @@ from datetime import datetime
|
|||
from multiprocessing import Lock
|
||||
from threading import Thread
|
||||
from queue import Queue, Empty
|
||||
from . import INFO, WARNING, ERROR
|
||||
|
||||
|
||||
class Log(object):
|
||||
def __init__(self, path, queue=None, print_output=True, timeout=1):
|
||||
def __init__(self, path, queue=None, print_output=True, timeout=1, level=WARNING):
|
||||
self.__terminated = False
|
||||
self.level = level
|
||||
self.file_lock = Lock()
|
||||
|
||||
if not path.exists():
|
||||
|
@ -42,9 +44,10 @@ class Log(object):
|
|||
while len(log_msg_list) < lines:
|
||||
try:
|
||||
log_line = self.queue.get(block=True, timeout=timeout)
|
||||
if self.print:
|
||||
print(log_line)
|
||||
log_msg_list.append(f"{log_line.encode('cp1252', errors='replace').decode('cp1252')}\n")
|
||||
level, message = log_line
|
||||
if self.print and level >= self.level:
|
||||
print(message)
|
||||
log_msg_list.append(f"{message.encode('cp1252', errors='replace').decode('cp1252')}\n")
|
||||
except Empty:
|
||||
break
|
||||
finally:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from datetime import datetime
|
||||
from multiprocessing import Queue
|
||||
from . import INFO, WARNING, ERROR
|
||||
|
||||
|
||||
class LogCat(object):
|
||||
|
@ -8,15 +9,24 @@ class LogCat(object):
|
|||
|
||||
self.category = category
|
||||
|
||||
def _write(self, level: str, function: str, message: str) -> None:
|
||||
def _write(self, level: int, function: str, message: str) -> None:
|
||||
time = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
|
||||
self.queue.put(f"{level} | {time} - {self.category.upper()}.{function.upper()}: {message}")
|
||||
self.queue.put((level, f"{self.level_string(level)} | {time} - {self.category.upper()}.{function.upper()}: {message}"))
|
||||
|
||||
def info(self, function: str, message: str) -> None:
|
||||
self._write("INFO", function, message)
|
||||
self._write(INFO, function, message)
|
||||
|
||||
def warning(self, function: str, message: str) -> None:
|
||||
self._write("WARN", function, message)
|
||||
self._write(WARNING, function, message)
|
||||
|
||||
def error(self, function: str, message: str) -> None:
|
||||
self._write("ERR ", function, message)
|
||||
self._write(ERROR, function, message)
|
||||
|
||||
@staticmethod
|
||||
def level_string(level: int) -> str:
|
||||
if level == INFO:
|
||||
return "INFO"
|
||||
elif level == WARNING:
|
||||
return "WARN"
|
||||
elif level == ERROR:
|
||||
return "ERR "
|
||||
|
|
Loading…
Reference in New Issue
Block a user