具体代码如下:
import logging
from logging.handlers import TimedRotatingFileHandler
import os
from pathlib import Path
# 确保日志目录存在
log_dir = Path(__file__).parent / "log"
log_dir.mkdir(parents=True, exist_ok=True)
# 定义日志文件路径
info_log_file = log_dir / "app.log" # 普通日志文件
error_log_file = log_dir / "log.err" # 错误日志文件
# 配置 logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG) # 设置最低日志级别为 DEBUG
# 创建普通日志处理器(按天轮转)
info_handler = TimedRotatingFileHandler(
filename=info_log_file,
when="midnight",
interval=1,
backupCount=7,
encoding="utf-8"
)
info_handler.setLevel(logging.INFO) # 只记录 INFO 级别及以上的日志
info_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
# 创建错误日志处理器(按天轮转)
error_handler = TimedRotatingFileHandler(
filename=error_log_file,
when="midnight",
interval=1,
backupCount=7,
encoding="utf-8"
)
error_handler.setLevel(logging.ERROR) # 只记录 ERROR 级别及以上的日志
error_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))
# 添加处理器到 logger
logger.addHandler(info_handler)
logger.addHandler(error_handler)
# 示例:记录日志
logger.info("这是一条普通日志")
logger.error("这是一条错误日志")
# 强制刷新日志缓冲区
import sys
logging.shutdown()
sys.exit() 网友回复


