在这里帮助我;我必须遗漏一些非常明显的东西。
我在Heroku上运行了一个Padrino应用程序。在boot.rb中,在传递给Padrino.before_load
的块中,我有以下几行:
Padrino::Logger::Config[:production][:log_level] = :info
Padrino::Logger::Config[:production][:stream] = :stdout
在app.rb的before
区块中,我呼叫logger.info
分散在各处。
这可以在我的开发机器上正常登录。但是当我检查我的Heroku日志时:
heroku logs -t -s app
...我什么都没看到(只是瘦服务器的最初3行启动信息)。
我错过了什么?
回应culix的一些澄清点:
heroku logs -s app
对我来说没有任何改变。logger.info
块中调用了before
。在完成此问题的更新后,我将添加更多日志记录并进行检查。显然,我应该花时间调查的第一件事是#4;这就是我现在要做的。然后,如果没有产生任何结果,则转到#3。
答案 0 :(得分:2)
以下是一些简单的问题,以确保我们已经涵盖了基础知识:
您是否在应用开始之前或之后运行heroku logs -t
?如果你没有运行,直到放下-t
开关并运行heroku logs -s app
显示任何东西?
您的应用中是否添加了syslog drain addons?如果是这样,他们会显示什么?如果没有,请尝试添加一个并再次运行您的应用程序 - 是否有任何日志详细信息显示在排水管中?
部署到heroku后,如果您访问应用程序的网站并运行应用程序的页面,那么日志或系统日志中的任何其他活动的输出是否会显示?即,您是否能够确认在heroku的服务器上运行时,您的应用程序的所有日志记录是否存在此问题,而只记录before
部分中的问题?
在本地计算机上运行时,您的应用仍然会记录到:production
,还是会在其他地方记录?即你的应用程序在本地执行与在heroku机器上运行时相同的事情吗?您部署的应用程序是否设置为以不同的Padrino日志记录环境运行?
您的boot.rb文件的最新版本是否已提交给您正在推送到heroku的git仓库?如果您在相应的目录上执行heroku run ls
,您是否可以在heroku web dyno上看到该文件?
作为最后的手段,你没有做任何与stdout混淆的事情,将输出或打印语句重定向到其他地方,或者你是什么类型的那种?