我有一个名为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种方法可以实现此目的:
>最简单的方法是将LOG_FILENAME设置为已经存在于logs / poller.log中,如果要在其他任何地方访问poller.log,请使用符号链接:)
>从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,rotation,logging 来源: https://codeday.me/bug/20190531/1188326.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。