gpt4 book ai didi

python - 使用 Python 将日志轮换到目录中

转载 作者:太空狗 更新时间:2023-10-30 02:35:00 24 4
gpt4 key购买 nike

我有一个名为 Poller.log 的文件,它始终附加有日志详细信息。我希望此日志文件每天轮换并限制为 30 天。因此,代码运行良好。

现在我希望这个已经轮换的日志位于一个文件夹中(即 logs/poller.log.2011-03-04_15-36)。有什么方法可以指示应该在哪里创建这个旋转文件?

此 python 脚本将由 Cron 执行。

import logging
import logging.handlers

LOG_FILENAME = '/home/stackoverflow/snmpdata/poller.log'

# Set up a specific logger with our desired output level
poll_logger = logging.getLogger('pollerLog')

# Add the log message handler to the logger
log_rotator = logging.handlers.TimedRotatingFileHandler(LOG_FILENAME, when='d', interval=1, backupCount=30, encoding=None, delay=False, utc=False)
poll_logger.addHandler(log_rotator)

# Roll over on application start
poll_logger.handlers[0].doRollover()

最佳答案

Python 日志处理程序不允许轻易做到这一点。您可能有 2 种方法来实现此目的:

  1. 最简单的方法是将 LOG_FILENAME 设置为已经在 logs/poller.log 中,如果您想在其他任何地方访问您的 poller.log,请使用符号链接(symbolic link) :)

  2. 从 TimedRotatingFileHandler 开始创建您自己的处理程序,并从/usr/lib/python2.X/logging/handlers.py, TimedRotatingFileHandler 类复制/粘贴 doRollover()。并更改:

dfn = self.baseFilename + "." + time.strftime(self.suffix, timeTuple)

dfn = os.path.join('logs', os.path.basename(self.baseFilename)) + "." + time.strftime(self.suffix, timeTuple)

关于python - 使用 Python 将日志轮换到目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com