You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.0 KiB

import logging
import os
from logging.handlers import TimedRotatingFileHandler
BASE_DIR = os.path.dirname(
os.path.dirname(os.path.abspath(__file__))
)
LOG_DIR = os.path.join(BASE_DIR, "logs")
os.makedirs(LOG_DIR, exist_ok=True)
def create_logger(name, filename):
logger = logging.getLogger(name)
if logger.handlers:
return logger
logger.setLevel(logging.INFO)
log_path = os.path.join(LOG_DIR, filename)
handler = TimedRotatingFileHandler(
log_path,
when="midnight",
interval=1,
backupCount=30,
encoding="utf-8"
)
handler.suffix = "%Y-%m-%d.log"
formatter = logging.Formatter(
"[%(asctime)s] "
"[%(levelname)s] "
"%(message)s"
)
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
# 直接可用
system_logger = create_logger(
"system_logger",
"system.log"
)
tool_logger = create_logger(
"tool_logger",
"tool.log"
)
error_logger = create_logger(
"error_logger",
"error.log"
)