为什么Django日志记录不起作用 [英] Why Django logging is not working

查看:313
本文介绍了为什么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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆