我在heroku上有个小应用。每当我想要查看日志时,我就转到命令行并执行
heroku logs
它只显示了大约100行。是不是没有办法在heroku上查看我们应用程序的完整日志?
我在heroku上有个小应用。每当我想要查看日志时,我就转到命令行并执行
heroku logs
它只显示了大约100行。是不是没有办法在heroku上查看我们应用程序的完整日志?
当前回答
Heroku logs -t显示了活动日志。
其他回答
我建议使用一个插件,我使用Logentries。要使用它,在命令行中运行:
Heroku插件:create logentries:le_tryit
(该命令创建一个免费帐户的插件,但显然你可以升级,如果你想)
Logentries允许您每月保存高达5GB的日志卷。这些信息可以通过他们在过去7天内的命令搜索来搜索,并且有实时警报。
所以回答你的问题,通过使用这个插件,你可以确保你的日志不会再丢失,当你达到1500行,Heroku保存默认情况下。 希望这能有所帮助!祝你有愉快的一天!
我的解决方案是在应用程序第一次启动时获得完整的日志,例如:
heroku logs -n 1500 > log
然后添加fgrep -vf使其保持最新,例如:
heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log
对于连续日志,只需每x分钟(或秒)使用watch迭代一次。
你需要有一些日志排水实现,应该排水你的日志,以查看所有的日志(管理历史日志以及):
第一个选择- Splunk可以使用:你可以排出你所有的日志,如:
heroku drains:add syslog+tls://splunk-server.com:514 -a app_name
然后登录到splunk服务器,搜索任意数量的日志。我正在使用Splunk,这对我来说是完美的。
第二个选项-你可以购买添加到你的应用程序,如下所示:(我没有使用这些选项,但这些是可用的)。 Timber.io 相扑逻辑 LogEnteries 日志DNA Papertrail
你也可以看看下面的选项:如果你想拥有你的 JSON格式的日志,因为它将有助于如果您的日志推送到 外部系统,如Splunk/ELK,它将变得容易(性能 明智的也)搜索JSON。
https://github.com/goodeggs/heroku-log-normalizer
它不是拥有Readme。Md,但是在https://github.com/goodeggs/bites/issues/20上有一些解释
最后
你可以一直使用下面的命令,正如其他用户已经提到的:
下面的命令将跟踪heroku上的生成日志
heroku logs -t -a <app_name>
下面的命令将显示来自heroku的1000行日志
heroku logs -n 1000 -a <app_name>
注意,只有1500行最新的日志可用,其余的将从heroku dyno中删除。
有关雪松堆叠参见:
https://devcenter.heroku.com/articles/oneoff-admin-ps
你需要运行:
Heroku run bash…
你可以使用 Heroku log -n 1500
但这并不是一个推荐的方法(换句话说,并没有向您展示真实的情况)
我建议你插上一些日志工具。(sumoLogic,书面记录等)作为附加组件
它们都有一个免费版本(限制很少,但对于一个小的应用程序或开发环境足够了,这将提供很好的洞察力和工具来分析日志)