python 使用 logging 自动按日期保存日志文件

想利用 Python 的 logging 模块每天自动创建一个新的日志文件,可以使用 logging.handlers.TimedRotatingFileHandler 类。

代码如下:

import logging
from logging.handlers import TimedRotatingFileHandler

# 创建一个 logger
logger = logging.getLogger("user")
logger.setLevel(logging.INFO)

# 创建一个 handler,用于写入日志文件
# midnight: 表示日志文件在每天半夜时分滚动
# interval: 间隔时间单位的个数,指等待多少个 when 的时间后 Logger 会自动重建新闻继续进行日志记录
# backupCount: 表示日志文件的保留个数,假如为7,则会保留最近的7个日志文件
save_handler = TimedRotatingFileHandler("mylog.log", when="midnight", interval=1, backupCount=7)
save_handler.suffix = "%Y-%m-%d"  # 设置日志文件名的时间戳格式

# 创建一个 handler,用于输出到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)  # 设置 handler 级别为 INFO

# 创建一个 formatter,用于设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 设置 handler 的格式
save_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

# 为 logger 添加 handler
logger.addHandler(save_handler)
logger.addHandler(console_handler)

# 记录日志
logger.info('This is a log info')
logger.debug('Debugging')
logger.warning('Warning exists')
logger.error('Error!')

在这个示例中,首先创建了一个 logger,并设置了它的级别为 INFO。然后创建了一个 TimedRotatingFileHandler,设置它在每天的午夜时分滚动日志文件,并保留最近的7个日志文件。此外还设置了日志文件名的时间戳格式为 “Y-m-d”。然后,创建了一个 formatter,并设置了日志的格式。最后,我们将 formatter 设定到 handler,并将 handler 添加到 logger。当记录一条日志时,它会被写入到当前的日志文件中,当时间到达午夜时分,当前的日志文件会被关闭,并创建一个新的日志文件。

运行这个示例,会看到一个名为 “mylog.log” 的日志文件被创建,并且日志信息被写入到这个文件中。当时间到达下一个午夜时分,当前的 “mylog.log” 文件会被重命名为如 “mylog.log.2023-07-24” 这样的形式,然后会创建一个新的 “mylog.log” 文件。

console结果:
在这里插入图片描述

文件保存结果:
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JL__Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值