Files
TurboSu/utils/logger.py
T

40 lines
1.0 KiB
Python

import logging
import os
import sys
from logging.handlers import RotatingFileHandler
from pathlib import Path
LOG_DIR = Path(__file__).resolve().parent.parent / "logs"
LOG_DIR.mkdir(exist_ok=True)
LOG_FILE = LOG_DIR / "turbosu.log"
LOG_FORMAT = logging.Formatter(
"[%(asctime)s] [%(levelname)s] [%(name)s] %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
def setup_logger(name: str, level: int = logging.DEBUG) -> logging.Logger:
logger = logging.getLogger(name)
logger.setLevel(level)
logger.propagate = False
if not logger.handlers:
fh = RotatingFileHandler(
LOG_FILE, maxBytes=10 * 1024 * 1024, backupCount=20, encoding="utf-8"
)
fh.setLevel(logging.DEBUG)
fh.setFormatter(LOG_FORMAT)
logger.addHandler(fh)
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.INFO)
ch.setFormatter(LOG_FORMAT)
logger.addHandler(ch)
return logger
def get_logger(name: str) -> logging.Logger:
return setup_logger(name)