+
95
-

回答

具体代码如下:

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

网友回复

我知道答案,我要回答