我有一个守护进程,它记录了它的操作:
LOG_FILE = '%s/%s.log' % (LOG_DIR, machine_name)
logging.basicConfig(filename=LOG_FILE,
level=logging.DEBUG,
format='%(asctime)s,%(msecs)05.1f '
'(%(funcName)s) %(message)s',
datefmt='%H:%M:%S')
过了一会儿,日志大小变得非常大,设备上没有剩余空间。
所以我不得不手动删除日志,这很好。
保持日志大小不超过某个限制的最佳方法是什么? 它可以通过日志记录模块完成,还是我需要编写外部脚本来暂时删除日志?
答案 0 :(得分:3)
您可以使用RotatingFileHandler
为您执行日志轮换。在Python文档的Logging Cookbook中有一个例子:
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)