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
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"
|
|
) |