当djang中出现回溯错误时,我在stdout中获得了两次日志

2024-06-06 13:13:29 发布

您现在位置:Python中文网/ 问答频道 /正文

记录器的my settings.py如下所示

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
    'json': {
        '()': 'sample_app.json_log_formatter.JSONFormatter',
    },
  },
'handlers': {
    'console': {
        'class': 'logging.StreamHandler',
        'stream': sys.stdout,
        #'level': '',
        'formatter': 'json'
    },
},
'loggers': {
    '': {
        'handlers': ['console'],
        'level': 'INFO',
        #'propogate': True,
    },
},
}

现在,如果存在任何未处理的异常,如var=abc,且未定义abc,我会获取日志2次

一个是我的处理程序,因此回溯错误是json格式的,第二个是来自django.request的没有json格式的相同错误

注意:我没有在代码中添加任何额外的记录器行。我只希望所有未处理的异常也采用json格式,但只需一次。所以当我送麋鹿去的时候,它是干净的


Tags: pyjsonsettingsversionmyformatterlogginghandlers
1条回答
网友
1楼 · 发布于 2024-06-06 13:13:29

我得到的设置更改如下:

'loggers': {
    '': {
        'handlers': ['console'],
        'level': 'DEBUG',
        'propogate': True,
    },
    'django': {
        'handlers': ['console'],
        'propagate': False,
        'level': 'INFO'
    },

所以在这里,我们将默认django请求设置为INFO级别,并传播为false,这样它就不会出现一次。这将覆盖根级别的日志配置,在上面的示例中,其他应用程序(如my django应用程序)的默认调试和django日志的信息级别

相关问题 更多 >