python - django 1.3 记录 timedrotatingfilehandler 在每次写入时截断文件

标签 python django logging django-views

我正在使用 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/

相关文章:

logging - 如何将 docker 容器日志重定向到单个文件?

c++ - 如何将模板可变参数存储到 std::ofstream 中?

python - Flask THREADS_PER_PAGE 配置

python - 为什么 Python 会引发 TypeError 而不是 SyntaxError?

python - 扭曲和Web编程该走哪条路?

python - 在 django 上使用 Amazon S3 使用 ImageField 上传图像

c# - NLog 自定义 LayoutRenderer 用于范围缩进

python - 如何在创建文件时设置图标文件

python - 在python中任意重新排序字典列表

django - 如何链接Django的“in”和“iexact”查询集字段查找?