我可以让 Heroku Logs 只返回概述错误的行吗?
Posted
技术标签:
【中文标题】我可以让 Heroku Logs 只返回概述错误的行吗?【英文标题】:Can I get Heroku Logs to return only lines outlining errors? 【发布时间】:2012-01-26 07:30:05 【问题描述】:heroku 日志是一个很好的资源,可以在出现问题时检查您的应用发生了什么。不幸的是,它们还记录了大量信息。有什么方法可以过滤日志中的错误消息吗?
【问题讨论】:
【参考方案1】:不要忘记 --app 标志。例如
heroku 日志 --app my-live-app | grep -i 错误
我发现有用的是 -d 参数:设置日志类型,例如-d 网页 当您有工作人员在后台运行任务并且您只想查看 Web 发生了什么时,这很好。
否则我会同意@leonardoborges 所说的。 NewRelic 或类似的可以很好地工作。
【讨论】:
【参考方案2】:用于检查 heroku 控制台中的所有日志
config.logger = Logger.new(STDOUT) config.logger.level = Logger::DEBUG
将这两行放在运行 heroku 应用程序的环境中(例如 production.rb)
如果有错误,您也可以查看详细日志。
【讨论】:
【参考方案3】:heroku logs | grep -i error
您还可以安装 New Relic 插件,它会报告详细的错误跟踪。我也听说过关于 Loggly 的好消息。
另见heroku - how to see all the logs
【讨论】:
也许您在“heroku 日志”返回的几行中没有任何错误。您可以尝试我的答案链接中建议的“heroku 控制台”方法。 @jay 这个方法有效——试试heroku console | grep -i get
,你会看到它对gets有效。申请错误
heroku logs
不跟踪日志,它只打印出一组行数。您需要添加 -t
或 --tail
才能使此答案起作用。【参考方案4】:
试试这个:
heroku logs -t | grep 'error'
获取错误发生时的运行列表。
'error'
周围的逗号是为我做的。
【讨论】:
如果这不适合您,尤其是在链接多个 grep 时,请尝试在grep
上添加 --line-buffered
开关。 heroku logs -t
是一个连续的流,所以 grep 可能需要这个提示。【参考方案5】:
我们管理着一个托管在 Heroku 上的高流量网站,NewRelic 和 Airbrake 的组合是一个很大的#win。
你试过这些吗?完全值得,Heroku 让将它们集成到您的应用中变得非常容易。
【讨论】:
这些看起来像我正在寻找的东西。谢谢!【参考方案6】:我个人认为日志不是查看错误的最佳位置,并且很容易遗漏细节。我会确保我的代码向外部位置提出错误,以确保它们不会被遗漏。
有很多选项,从简单的ExceptionNotifier 到更高级的系统,例如Airbrake(我自己使用的就是这个)。
这些不仅会通知您错误,而且还会为您提供一堆您可以使用的元信息。
【讨论】:
【参考方案7】:看看一些日志插件 - 我使用 PaperTrail 取得了很大的成功,但其他像 Loggly 和 Progstr Logging 将提供类似的服务。
本质上,您将日志输入到他们的服务中,它们提供了对您的日志执行实时搜索的能力,然后您就可以处理它 - 大多数会通过篝火、电子邮件、短信或简单的 HTTP 帖子提供某种通知进入其他应用程序来处理错误消息。
【讨论】:
以上是关于我可以让 Heroku Logs 只返回概述错误的行吗?的主要内容,如果未能解决你的问题,请参考以下文章