我阅读了所有StackOverflow答案,关于这个主题的所有博客文章,并尝试了两次,但我仍然无法让我的Django应用程序的日志消息出现在heroku日志中(Django&# 39;自己的消息确实出现了。)
任何人都可以粘贴一个在heroku中运行的完整LOGGING配置吗?
# views.py
import logging
logger = logging.getLogger(__name__)
def a_view(request):
# ...
logger.exception('error finding file')
# ...
使用:
# settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
'formatters': {
'simple': {
'format': '%(levelname)s [%(name)s:%(lineno)s] %(message)s'
},
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'simple',
"stream": sys.stdout
},
},
"loggers": {
"root": {
"handlers": ["console"],
},
# last try :(
"myapp": {
"handlers": ["console"],
},
"django": {
"handlers": ["console"],
}
}
}
答案 0 :(得分:2)
这是一个适合我的配置(OP):
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
'formatters': {
'simple': {
'format': '%(levelname)s [%(name)s:%(lineno)s] %(message)s'
},
},
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'formatter': 'simple',
"stream": sys.stdout
},
},
"loggers": {
"": {
"handlers": ["console"],
'level': 'INFO',
},
"django": {
"handlers": ["console"],
'level': 'INFO',
}
}
}
产生差异的修改是改变所有记录器的级别,但在此之前我将"root"
更改为""
,因此也可能需要这样做。
编辑:删除" myapp"记录器由""捕获记录器,解决了我的双重记录问题。