我正在尝试记录INFO以及ERROR登录生产。 但我不确定如何提及同一项目的两个日志级别。
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'WARNING',
'handlers': ['console', ],
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'sns': {
'level': 'ERROR',
'class': 'project.abc.snshandler.SNSHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console', ],
'propagate': False,
},
'django.security.DisallowedHost': {
'level': 'ERROR',
'handlers': ['console', ],
'propagate': False,
},
'project': {
'level': 'ERROR',
'handlers': ['console', 'sns'],
'propagate': False,
},
},
}
在项目级别,我也想记录INFO日志。
答案 0 :(得分:1)
您在配置中指定的日志记录级别将记录最小级别。回顾一下,这里是重要性顺序的预定义级别(从最低到最大):
DEBUG
INFO
WARNING
ERROR
CRITICAL
因此,如果您在配置中添加INFO
,则会看到所有日志都标记为INFO
,WARNING
,ERROR
和CRITICAL
。
如果你真的想看 INFO
和ERROR
,你可以尝试编写一些自定义代码,但我不鼓励它,因为它闻起来像一个糟糕的设计。< / p>
参考:
这里的配置如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'WARNING',
'handlers': ['console', ],
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'sns': {
'level': 'ERROR',
'class': 'project.abc.snshandler.SNSHandler',
'formatter': 'verbose'
}
},
'loggers': {
'django.db.backends': {
'level': 'INFO',
'handlers': ['console', ],
'propagate': False,
},
'django.security.DisallowedHost': {
'level': 'INFO',
'handlers': ['console', ],
'propagate': False,
},
'project': {
'level': 'INFO',
'handlers': ['console', 'sns'],
'propagate': False,
},
},
}