aiogram-bot-template/utils/misc/logging.py
2020-08-05 16:03:13 +03:00

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)