Django日志记录:无法每天创建日志

时间:2014-09-16 07:47:54

标签: python django file logging

我试图每天订购我的日志,但是在新的一天它不会创建新文件。它继续存储前一天的日志,除非我重新启动服务器。我怎么能解决这个问题?

我正在使用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'
    },
},
}

1 个答案:

答案 0 :(得分:5)

请勿在此处设置日期:仅在导入时对其进行评估。

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

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