import logging.handlers
import os
import time
 
# 创建日志文件的路径
log_file_path = '/path/to/your/log/directory/app.log'
 
# 创建TimedRotatingFileHandler,日志按时间轮转,每天轮转一次
rotating_handler = logging.handlers.TimedRotatingFileHandler(
    log_file_path,
    when='midnight',  # 每天午夜轮转
    backupCount=30,   # 保留30个备份
    encoding='utf-8'  # 日志文件编码
)
 
# 创建日志记录的格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
rotating_handler.setFormatter(formatter)
 
# 创建一个日志器,并设置日志级别
logger = logging.getLogger('myapp')
logger.setLevel(logging.INFO)
logger.addHandler(rotating_handler)
 
# 测试日志记录
for i in range(10):
    logger.info(f'This is a test log message {i}')
    time.sleep(10)  # 等待10秒,确保时间超过午夜这段代码演示了如何在Python中使用TimedRotatingFileHandler来创建日志文件,并且每天午夜自动轮转日志文件。同时,展示了如何在多进程环境中安全地使用日志模块,避免文件操作冲突。