Django记录timedrotingfilehandler在每个wri上截断文件

2024-06-17 12:00:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django1.3的日志记录特性,并尝试实现一个timedrotingfilehandler来每隔小时。那个记录器每小时都会成功地旋转,但似乎在每次日志请求期间,它都会截断文件。那个文件只有最后一次写入消息。是这是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的虫子?在


Tags: 文件djangodebug消息处理程序handlers记录特性
3条回答

无论何时创建日志文件,只要在文件名中添加一个日期时间戳。这将确保文件永远不会被截断。在

我想有多个进程在写入日志文件,在这种情况下,您可以使用ConcurrentLogHandler来避免截断。在

您需要设置:

'when' : 'H',
'interval' : 1,

从代码来看,当前支持的“when”事件:

  • S-秒
  • M-分钟
  • 小时
  • D-天
  • 午夜-午夜翻身
  • W{0-6}-在某一天翻身;0-星期一

Interval是要计数的间隔数(例如,当=='H'且Interval==2时,将产生2小时)。在

相关问题 更多 >