31 lines
868 B
Python
31 lines
868 B
Python
import logging
|
|
import sys
|
|
|
|
from loguru import logger
|
|
|
|
from data import config
|
|
|
|
|
|
class InterceptHandler(logging.Handler):
|
|
LEVELS_MAP = {
|
|
logging.CRITICAL: "CRITICAL",
|
|
logging.ERROR: "ERROR",
|
|
logging.WARNING: "WARNING",
|
|
logging.INFO: "INFO",
|
|
logging.DEBUG: "DEBUG",
|
|
}
|
|
|
|
def _get_level(self, record):
|
|
return self.LEVELS_MAP.get(record.levelno, record.levelno)
|
|
|
|
def emit(self, record):
|
|
logger_opt = logger.opt(depth=6, exception=record.exc_info)
|
|
logger_opt.log(self._get_level(record), record.getMessage())
|
|
|
|
|
|
# noinspection PyArgumentList
|
|
def setup():
|
|
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
|
|
logger.add(config.LOGS_BASE_PATH + "/file_{time}.log")
|
|
logging.basicConfig(handlers=[InterceptHandler()], level=logging.INFO)
|