如何在Heroku上启用Padrino应用程序的日志记录?

时间:2012-08-15 20:09:57

标签: logging heroku padrino

在这里帮助我;我必须遗漏一些非常明显的东西。

我在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的一些澄清点:

  1. 在应用启动后切换到heroku logs -s app对我来说没有任何改变。
  2. 我尝试安装Papertrail。其实看起来很不错!但它仍然没有我正在寻找的日志消息。
  3. 这是个好问题!我真的做了只是在logger.info块中调用了before。在完成此问题的更新后,我将添加更多日志记录并进行检查。
  4. 现在您问:当我切换到“生产”中运行时(在将database.rb更改为仅指向开发数据库之后),我的应用程序似乎没有记录任何内容。 我认为这意味着我只是从根本上错误地配置Padrino日志。感谢您提出这个问题!
  5. 最新的boot.rb已提交。
  6. Nope-not(故意)以任何方式搞乱stdout。
  7. 显然,我应该花时间调查的第一件事是#4;这就是我现在要做的。然后,如果没有产生任何结果,则转到#3。

1 个答案:

答案 0 :(得分:2)

以下是一些简单的问题,以确保我们已经涵盖了基础知识:

  1. 您是否在应用开始之前或之后运行heroku logs -t?如果你没有运行,直到放下-t开关并运行heroku logs -s app显示任何东西?

  2. 您的应用中是否添加了syslog drain addons?如果是这样,他们会显示什么?如果没有,请尝试添加一个并再次运行您的应用程序 - 是否有任何日志详细信息显示在排水管中?

  3. 部署到heroku后,如果您访问应用程序的网站并运行应用程序的页面,那么日志或系统日志中的任何其他活动的输出是否会显示?即,您是否能够确认在heroku的服务器上运行时,您的应用程序的所有日志记录是否存在此问题,而只记录before部分中的问题?

  4. 在本地计算机上运行时,您的应用仍然会记录到:production,还是会在其他地方记录?即你的应用程序在本地执行与在heroku机器上运行时相同的事情吗?您部署的应用程序是否设置为以不同的Padrino日志记录环境运行?

  5. 您的boot.rb文件的最新版本是否已提交给您正在推送到heroku的git仓库?如果您在相应的目录上执行heroku run ls,您是否可以在heroku web dyno上看到该文件?

  6. 作为最后的手段,你没有做任何与stdout混淆的事情,将输出或打印语句重定向到其他地方,或者你是什么类型的那种?

相关问题