Django logger.error不会将日志记录条目保存到debug.log文件中

时间:2019-03-06 00:35:15

标签: django django-logging

我遵循了django文档,并尝试使用logger.error将错误保存到debug.log文件中。

LOGGING = {

'version': 1,
'disable_existing_loggers': False,
'handlers': {
    'file': {
        'level': 'DEBUG',
        'class': 'logging.FileHandler',
        'filename': 'debug.log',
    },
},
'loggers': {
    'django': {
        'handlers': ['file'],
        'level': 'DEBUG',
        'propagate': True,
    },
},
}


import logging
logger = logging.getLogger(__name__)
...... // some code here
    if not data:
        logger.error('Search term is not valid')

在控制台中会打印出“搜索词无效”一词,但不会将其保存到debug.log文件中。

我不太确定Django日志的工作方式。它应该表现得那样还是我的代码有问题?另外,如何将“搜索词无效”保存到debug.log文件中?非常感谢!

2 个答案:

答案 0 :(得分:1)

使用您在settings.py中给定的名称,在您的情况下为django

import logging

# use name that you have given in settings in your case it is  django
logger = logging.getLogger('django')

def my_view(request, arg1, arg):
    ...
    if bad_mojo:
        # Log an error message
        logger.error('Something went wrong!')

答案 1 :(得分:0)

尝试提供文件'filename': '/path/to/django/debug.log'的完整路径

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/path/to/django/debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

参考:https://docs.djangoproject.com/en/2.1/topics/logging/#examples

相关问题