我知道这个问题已经被问过好几次了,但我就是无法让它发挥作用。我已经花了半天的时间尝试了几十种组合,现在又一次,它仍然不起作用。
在我的代码中,我记录了几个部分,例如在 try-except 中或从管理命令中记录一些信息。我正在做一些非常普通的事情,即在几个本地安装和一些 Nginx 服务器上工作。
像这样的python文件:
import logging
logger = logging.getLogger(__name__)
logger.info('some important infos')
遵循最小的 settings.py (我尝试了没有流指示,没有指定记录器,使用命名记录器,几乎所有可能的组合,我也尝试了更复杂的组合)
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'level': 'INFO',
'class': 'logging.StreamHandler',
'stream': sys.stdout
}
},
'loggers': {
'django': {
'handlers': ['console'],
'propagate': True,
'level': 'INFO',
},
'': {
'handlers': ['console'],
'level': 'INFO',
}
}
}
然后也简单地从shell测试heroku run python
import logging
level = logging.INFO
handler = logging.StreamHandler()
handler.setLevel(level)
handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
logger = logging.getLogger('info')
logger.addHandler(handler)
logger.setLevel(level) #even if not required...
logger.info('logging test')
最后一个可能会在控制台中显示为“打印”语句,但无论是在此处还是来自命令或服务器,都不会出现在heroku logs
....
编辑:实际上我显示了一些条目,如下所示的应用程序日志,而不是我的:
2013-09-20T15:00:16.405492+00:00 heroku[run.2036]: Process exited with status 0
2013-09-20T15:00:17+00:00 app[heroku-postgres]: source=HEROKU_POSTGRESQL_OLIVE sample[...]
2013-09-20T14:59:47.403049+00:00 heroku[router]: at=info method=GET path=/
2013-09-20T14:59:16.304397+00:00 heroku[web.1]: source=web.1 dyno=heroku [...]
我还尝试使用多个插件查找条目。一开始我有一段时间 newrelic,然后我也从 WSGI 启动中停用了它。不记得当时好不好用,newrelic的免费测试期比较短。
好吧,我不知道我还能尝试什么...感谢您的任何提示