我在heroku上有个小应用。每当我想要查看日志时,我就转到命令行并执行

heroku logs

它只显示了大约100行。是不是没有办法在heroku上查看我们应用程序的完整日志?


当前回答

你需要使用-t或——tail选项,你需要定义你的heroku应用程序名称。

heroku logs -t --app app_name

其他回答

我遇到了这样的情况,在我的应用程序的仪表板中,当我打开:

More >查看日志

我不会得到输出,只是挂起…

所以我做了一个谷歌,发现了这个:

Heroku CLI插件列出和创建Heroku应用程序的构建。

我安装并运行:

heroku builds -a example-app /* Lists 10 most recently created builds for example-app, that's where you get the id for the next step*/

然后输入:

heroku builds:output your-app-id-number -a example-app 

就是这样,您应该会得到通常在仪表板GUI或本地看到的内容。

希望这能帮助到像我一样的人!

WAR文件:

我没有使用github,而是直接上传了一个WAR文件(我发现这更容易和更快)。

因此,以下几点帮助了我:

heroku logs --app appname

希望它能帮助到一些人。

更新(感谢dawmail333):

heroku logs -n 1500

或者,活生生地跟踪这些原木

heroku logs -t 

Heroku日志文档

如果你需要超过几千行,你可以使用heroku的Syslog排水

或者(旧方法):

$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }

你需要有一些日志排水实现,应该排水你的日志,以查看所有的日志(管理历史日志以及):

第一个选择- 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中删除。

我的解决方案是在应用程序第一次启动时获得完整的日志,例如:

heroku logs -n 1500 > log

然后添加fgrep -vf使其保持最新,例如:

heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log

对于连续日志,只需每x分钟(或秒)使用watch迭代一次。