Initial commit

This commit is contained in:
Julian Müller (ChaoticByte) 2024-01-31 16:11:59 +01:00
commit cc818946b7
9 changed files with 185 additions and 0 deletions

54
transcriptapi/msg.py Normal file
View file

@ -0,0 +1,54 @@
# Copyright (c) 2024 Julian Müller (ChaoticByte)
from datetime import datetime as _datetime
from os import environ as _environ
from sys import stderr as _stderr
from sys import stdout as _stdout
from typing import Any as _Any
class ComponentLogger:
LEVELS = [
"DEBUG",
"INFO",
"WARN",
"ERROR",
"CRITICAL"
]
def __init__(self, component: str, level: int = 1, print_timestamp: bool = True):
'''level may be overwritten by environment variable LOGLEVEL'''
assert type(component) == str
assert type(level) == int
assert type(print_timestamp) == bool
self.component = component
self.level = level
if "LOGLEVEL" in _environ:
loglevel_ = _environ["LOGLEVEL"]
if loglevel_ in self.LEVELS:
self.level = self.LEVELS.index(loglevel_)
self.print_timestamp = print_timestamp
def _log(self, msg: _Any, level: int, file = _stdout):
assert type(level) == int
if level >= self.level:
if self.print_timestamp:
t = _datetime.now().astimezone().strftime(r'%Y-%m-%d %H:%M:%S %z')
print(f"[{t}] [{self.component}] [{self.LEVELS[level]}] {msg}", file=file)
else:
print(f"[{self.component}] [{self.LEVELS[level]}] {msg}", file=file)
def debug(self, msg: _Any):
self._log(msg, 0)
def info(self, msg: _Any):
self._log(msg, 1)
def warning(self, msg: _Any):
self._log(msg, 2, file=_stderr)
def error(self, msg: _Any):
self._log(msg, 3, file=_stderr)
def critical(self, msg: _Any):
self._log(msg, 4, file=_stderr)