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 .log import Log
|
||||||
from .logcat import LogCat
|
from .logcat import LogCat
|
||||||
|
|
|
@ -2,11 +2,13 @@ from datetime import datetime
|
||||||
from multiprocessing import Lock
|
from multiprocessing import Lock
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from queue import Queue, Empty
|
from queue import Queue, Empty
|
||||||
|
from . import INFO, WARNING, ERROR
|
||||||
|
|
||||||
|
|
||||||
class Log(object):
|
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.__terminated = False
|
||||||
|
self.level = level
|
||||||
self.file_lock = Lock()
|
self.file_lock = Lock()
|
||||||
|
|
||||||
if not path.exists():
|
if not path.exists():
|
||||||
|
@ -42,9 +44,10 @@ class Log(object):
|
||||||
while len(log_msg_list) < lines:
|
while len(log_msg_list) < lines:
|
||||||
try:
|
try:
|
||||||
log_line = self.queue.get(block=True, timeout=timeout)
|
log_line = self.queue.get(block=True, timeout=timeout)
|
||||||
if self.print:
|
level, message = log_line
|
||||||
print(log_line)
|
if self.print and level >= self.level:
|
||||||
log_msg_list.append(f"{log_line.encode('cp1252', errors='replace').decode('cp1252')}\n")
|
print(message)
|
||||||
|
log_msg_list.append(f"{message.encode('cp1252', errors='replace').decode('cp1252')}\n")
|
||||||
except Empty:
|
except Empty:
|
||||||
break
|
break
|
||||||
finally:
|
finally:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from multiprocessing import Queue
|
from multiprocessing import Queue
|
||||||
|
from . import INFO, WARNING, ERROR
|
||||||
|
|
||||||
|
|
||||||
class LogCat(object):
|
class LogCat(object):
|
||||||
|
@ -8,15 +9,24 @@ class LogCat(object):
|
||||||
|
|
||||||
self.category = category
|
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")
|
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:
|
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:
|
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:
|
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