【问题标题】:How do I enable logging for a Padrino app on Heroku?如何在 Heroku 上为 Padrino 应用程序启用日志记录?
【发布时间】:2012-08-12 04:09:13
【问题描述】:

在这里帮帮我;我一定遗漏了一些非常明显的东西。

我有一个在 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. 这是个好问题!我真的确实只是在before 块中调用了logger.info。完成更新此问题后,我将添加更多日志记录并回来查看。
  4. 现在您要问了:当我切换到在“生产”中运行时(将 database.rb 更改为仅指向开发数据库之后),我的应用程序似乎也没有记录任何内容。 我认为这意味着我只是从根本上错误地配置了 Padrino 日志记录。感谢您提出这个问题!
  5. 最新的 boot.rb 已提交。
  6. 不,不(故意)以任何方式弄乱标准输出。

显然,我应该花时间调查的第一件事是上面的#4;这就是我现在要做的。然后,如果它没有产生任何结果,请转到#3。

【问题讨论】:

  • 很高兴听到你有一些线索 :) 随时通知我!

标签: logging heroku padrino


【解决方案1】:

这里有一些简单的问题,只是为了确保我们已经涵盖了基础知识:

  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. 作为最后的手段,您不会做任何与标准输出混淆的事情,将输出或打印语句重定向到其他地方,或者您是什么类型的?

【讨论】:

  • 这些完全冷静的问题让我发现,即使在本地运行并将PADRINO_ENV 设置为“生产”,我也没有看到预期的日志记录。这让我尝试了其他设置日志级别的方法,最终我发现使用适当的设置设置常量 PADRINO_LOGGER 可以让我到达我想要的位置。谢谢!
猜你喜欢
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 2018-05-06
相关资源
最近更新 更多