【问题标题】:Django logging: Cannot create logs per dayDjango日志记录:无法每天创建日志
【发布时间】:2014-11-09 21:07:28
【问题描述】:

我正在尝试每天订购我的日志,但是当它是新的一天时它不会创建新文件。除非我重新启动服务器,否则它将继续存储前一天的日志。我该如何解决?

我使用的是 Django 1.4。

提前致谢!

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse'
    }
},
'formatters':{
    'verbose': {
        'format': '[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s'
    },
    'simple': {
        'format': '[%(levelname)s] %(message)s'
    },
},
'handlers': {
    'file_django': {
        'class': 'logging.FileHandler',
        'filename': '/var/log/zboss/django/log_' + date.today().strftime('%Y%m%d') + '.log',
        'formatter': 'verbose',
        'level': 'DEBUG'
    },
    'file_modules': {
        'class': 'logging.FileHandler',
        'filename': '/var/log/zboss/log_' + date.today().strftime('%Y%m%d') + '.log',
        'formatter': 'verbose',
        'level': 'DEBUG'
    },
    'mail_admins': {
        'level': 'ERROR',
        'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    },
},
'loggers': {
    'django': {
        'handlers': ['file_django'],
        'propagate': True,
        'level': 'DEBUG'
    },
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    },
    'core.views': {
        'handlers': ['file_modules'],
        'propagate': True,
        'level': 'DEBUG'
    },
},
}

【问题讨论】:

    标签: python django file logging


    【解决方案1】:

    不要在那里设置日期:它将仅在导入时进行评估。

    改为使用logging.TimedRotatingFileHandler,它会自动为您添加时间戳,如下所示:

    LOGGING = {
        # ...
        'handlers': {
            'file': {
                'level': 'INFO',
                'formatter': 'verbose',
                'filename': os.path.join(FOOBAR, 'foobar.log'),
                'class': 'logging.handlers.TimedRotatingFileHandler',
                'when': 'midnight',
                'interval': 1,
            },
        },
    }
    

    【讨论】:

    • 我应该提供什么来代替 handlers['filename']?
    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2022-12-19
    • 2011-02-12
    • 2015-07-22
    • 2018-11-13
    相关资源
    最近更新 更多