Django - 日志配置

时间:2016-10-23 14:19:04

标签: python django logging django-logging

我的日志记录无法在开发服务器上运行,而是在本地工作。这是配置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '%(levelname)s %(asctime)s %(message)s'
        },
    },
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers': {
        'log_file':{
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': '/var/log/django/my_project.log',
            'maxBytes': '16777216', # 16 MB
            'formatter': 'simple'
        },
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'null': {
            'class': 'logging.NullHandler',
        },
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'my_project': {
            'handlers': ['log_file', 'console'],
            'level': 'INFO',
            'propagate': True,
        },
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': False,
        },
    }
}

然后,如果我创建一个记录器实例:

logger = logging.getLogger('my_project')

我试着记录一下:

logger.info('something')
logger.debug('something else')

它没有工作(没有写在/var/log/django/my_project.log上),而在本地工作。 我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

可能缺少写入权限? 运行应用程序的用户是否允许在/ var?

中写入