为什么Django日志记录不起作用 [英] Why Django logging is not working
本文介绍了为什么Django日志记录不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的设置模块:
LOGGING = {
'version':1,
'disable_existing_loggers':False,
'handlers':{
'file':{
'level':'DEBUG',
'class':'logging.FileHandler'
'filename':'/django-python/django/testapp/testapp.log',
},
},
'loggers':{
'django ':{
'handlers':['file'],
'level':'DEBUG',
'propagate':True,
},
} ,
}
这是我在视图文件中的代码:
import logging
logger = logging.getLogger(__ name__)
logger.info(这是一个错误消息!!)
我从各种模块获取以前的日志,但是在上面的日志中这是一个错误消息 。
解决方案
您的日志记录配置仅捕获 django
命名空间中的日志。 / p>
此行:
logger = logging.getLogger(__ name__)
...告诉记录器将模块的名称用作这些日志的命名空间( docs )。如果您的模块被称为 mymodule
,那么您可以通过在日志记录配置中添加如下内容来捕获这些日志:
'loggers':{
'django':{...},
'mymodule':{
'handlers':['file' ],
'level':'DEBUG',
'propagate':True,
},
},
This is my settings module :
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': '/django-python/django/testapp/testapp.log',
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
}
and this is my code in view file :
import logging
logger = logging.getLogger(__name__)
logger.info("this is an error message!!")
I am getting the previous logs from various modules but thor the above log "this is an error message" .
解决方案
Your logging configuration only captures logs within the django
namespace.
This line:
logger = logging.getLogger(__name__)
... tells the logger to use your module's name as the namespace for these logs (docs). If your module is called mymodule
, then you can catch these logs by adding something like this to your logging configuration:
'loggers': {
'django' : {...},
'mymodule': {
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
},
这篇关于为什么Django日志记录不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文