import logging | |
import sys | |
class LoggerHandler(logging.Handler): | |
r""" | |
Logger handler used in Web UI. | |
""" | |
def __init__(self): | |
super().__init__() | |
self.log = "" | |
def reset(self): | |
self.log = "" | |
def emit(self, record): | |
if record.name == "httpx": | |
return | |
log_entry = self.format(record) | |
self.log += log_entry | |
self.log += "\n\n" | |
def get_logger(name: str) -> logging.Logger: | |
r""" | |
Gets a standard logger with a stream hander to stdout. | |
""" | |
formatter = logging.Formatter( | |
fmt="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%m/%d/%Y %H:%M:%S" | |
) | |
handler = logging.StreamHandler(sys.stdout) | |
handler.setFormatter(formatter) | |
logger = logging.getLogger(name) | |
logger.setLevel(logging.INFO) | |
logger.addHandler(handler) | |
return logger | |
def reset_logging() -> None: | |
r""" | |
Removes basic config of root logger. (unused in script) | |
""" | |
root = logging.getLogger() | |
list(map(root.removeHandler, root.handlers)) | |
list(map(root.removeFilter, root.filters)) | |