2

我遵循 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 文件中?非常感谢!

4

2 回答 2

4

使用您提供的名称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!')
于 2019-03-06T03:04:49.417 回答
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

于 2019-03-06T02:44:32.703 回答