有没有办法使用python中提供的日志记录模块来旋转日志文件?就像logrotate中那样?
我使用了logrotate,但它产生了一些奇怪的结果。
答案 0 :(得分:1)
我认为this可以帮到你。
是的,你也可以在Python中用logrotate
类似于在Python中旋转日志文件。以下是上述链接中的一个小例子:
import glob
import logging
import logging.handlers
LOG_FILENAME = 'logging_rotatingfile_example.out'
# Set up a specific logger with our desired output level
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=20, backupCount=5)
my_logger.addHandler(handler)
# Log some messages
for i in range(20):
my_logger.debug('i = %d' % i)
# See what files are created
logfiles = glob.glob('%s*' % LOG_FILENAME)
for filename in logfiles:
print(filename)
脚本的输出是:
logging_rotatingfile_example.out
logging_rotatingfile_example.out.1
logging_rotatingfile_example.out.2
logging_rotatingfile_example.out.3
logging_rotatingfile_example.out.4
logging_rotatingfile_example.out.5
最新文件始终为logging_rotatingfile_example.out
每次达到大小限制时,使用后缀.i
重命名。重命名每个现有备份文件以增加后缀(.1变为.2等)。
这只是一个节目示例。在现实生活中,您应该将maxBytes
设置为适当的值。
来源:Python Docs(上面列出的文章,以防链接被破坏)