我正在使用 django 1.3 的日志记录功能,并试图实现一个 timedrotatingfilehandler 来每小时轮换日志。记录器在每小时后成功轮换,但似乎在每个日志请求期间它都会截断文件。该文件只有最后一个书面消息。这是 django 处理程序中的问题还是我在某处丢失了。日志记录字典如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'standard': {
'format' : "%(asctime)s:%(pathname)s:%(lineno)s: %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
},
'handlers': {
'logfile': {
'level':'DEBUG',
'class':'logging.handlers.TimedRotatingFileHandler',
'filename': "/tmp/log1.log",
'when' : 'hour',
'interval' : 0,
'formatter': 'standard',
},
},
'loggers': {
'collection': {
'handlers': ['logfile'],
'level': 'DEBUG',
},
}
}
请注意:当间隔设置为 1 时,日志不会轮换。这是 django 中的错误吗?
最佳答案
你需要设置:
'when' : 'H',
'interval' : 1,
从代码来看,当前支持的“when”事件:
- S - 秒
- M - 分钟
- H - 小时数
- D - 天
- 午夜 - 午夜翻身
- W{0-6} - 在某一天翻滚; 0 - 星期一
Interval 是要计算的间隔数(例如,当 == 'H' 和 interval == 2 将导致 2 小时)。
关于python - django 1.3 记录 timedrotatingfilehandler 在每次写入时截断文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328895/