【发布时间】:2014-03-26 18:05:00
【问题描述】:
我正在 Django 服务器上设置日志记录。我希望能够将任意 INFO 级别的字符串记录到服务器的标准输出中,因此它出现在标准 Django 消息旁边,如下所示:
[24/Feb/2014 20:37:03] "POST /v1/events/ HTTP/1.1" 201 0
这是我当前的日志记录配置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse'
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
},
#'file': {
#'level': 'DEBUG',
#'class': 'logging.FileHandler',
#'filename': '/tmp/djdebug.log',
#},
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'django': {
'handlers': ['console'],
'propogate': True,
'level': 'INFO'
}
#'django': {
#'handlers': ['file'],
#'propagate': True,
#'level': 'DEBUG',
#},
}
}
在我的 django 项目的应用程序中的 models.py 文件中,我在顶部执行以下操作:
import logging
logger = logging.getLogger(__name__)
然后,在一些代码中,我编写运行以下内容:
logger.info('triggering notifications')
代码到达调用 this 的位置,但没有任何内容写入服务器的标准输出。我错过了什么吗?我在本地运行它,并且 DEBUG = True,但我希望即使在 DEBUG = False 的生产中也能显示 INFO 消息。
【问题讨论】: