heroku logs
那只给我显示了大约100行。在Heroku上没有办法看到我们应用的完整日志吗?
更新(感谢dawmail333):
heroku logs -n 1500
heroku logs -t
如果你需要超过几千行的日志,可以使用heroku的Syslog Drains
另外一种方法(旧方法):
$ heroku run rails c
File.open('log/production.log', 'r').each_line { |line| puts line }
Heroku的日志记录得到了极大的改进!
$ heroku logs -n 500
更好!$ heroku logs --tail
参考文献:http://devcenter.heroku.com/articles/logging
更新:
这些不再是插件,而是默认功能的一部分:)
Heroku将日志视为按时间排序的事件流。在这种环境中,不建议访问文件系统上的*.log
文件,原因有很多。
首先,如果您的应用程序有多个dyno,则每个日志文件仅代表您的应用程序事件的部分视图。您需要手动聚合所有文件才能获得完整的视图。
其次,Heroku上的文件系统是暂时性的,这意味着每当您的dyno重新启动或移动(大约一天一次),日志文件就会丢失。因此,您最多只能查看该单个dyno的日志一天的视图。
最后,在运行heroku console
甚至heroku run bash
的Cedar stack上,您不会连接到当前正在运行的dyno。它会为bash
命令专门生成一个新的进程,这被称为one-off process。因此,您将无法在为heroku run
生成的进程中找到运行实际http进程的其他dynos的日志文件。
Logging和可见性是Heroku上的一等公民,并且有几个工具来解决这些问题。首先,要查看跨应用程序/堆栈的所有dynos和所有层的应用程序事件的实时流,请使用heroku logs -t
命令将输出尾随到终端。$ heroku logs -t
2010-09-16T15:13:46-07:00 app[web.1]: Processing PostController#list (for 208.39.138.12 at 2010-09-16 15:13:46) [GET]
2010-09-16T15:13:46-07:00 app[web.1]: Rendering template within layouts/application
2010-09-16T15:13:46-07:00 heroku[router]: GET myapp.heroku.com/posts queue=0 wait=0ms service=1ms bytes=975
2010-09-16T15:13:47-07:00 app[worker.1]: 2 jobs processed at 16.6761 j/s, 0 failed ...
heroku console
或heroku run bash
查看静态日志文件。使用heroku logs
或日志添加组件将日志事件流导入Heroku。请参考 Heroku 日志文档
以下是查看日志的方法:
heroku logs
--num
(或 -n
)选项最多可以显示 200 行日志。
heroku logs -n 200
heroku logs --tail
heroku logs --app your_app_name
还可以查看单独的流/过滤器。
例如,仅查看您的应用程序日志
heroku logs --source app -t
或者只查看路由器日志
heroku logs --ps router
heroku logs --source app --ps worker
So good..
heroku logs --ps web.1
(使用1个dyno)。 - Maxence您可以使用Heroku的命令行界面(CLI Usage)访问日志文件。
如果已安装Heroku的CLI并且您知道应用程序名称(例如https://myapp.herokuapp.com/
),则可以运行以下命令:
heroku logs --tail --app=myapp
您还可以使用以下方式实时访问日志流:
heroku logs --source app --tail --app=myapp
如果日志显示类似以下内容:
npm ERR!这次运行的完整日志可以在以下位置找到:
npm ERR!/app/.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
那么您也可以通过Heroku CLI使用bash终端访问它们:
heroku run bash --app=myapp
less ./.npm/_logs/2017-07-11T08_29_45_291Z-debug.log
heroku logs -t
可以展示我们实时的日志。
heroku logs -n 1500 > log
fgrep -vf
以使其保持最新,如下所示:heroku logs -n 1500 > newlog ; fgrep -vf log newlog >> log
对于持续记录,只需使用watch每隔x分钟(或秒)进行迭代即可。
heroku logs -n 1500
命令,这是Cedar上可用的最佳方法。如果您需要更多行,请使用syslog drain:https://devcenter.heroku.com/articles/logging#syslog_drains - Liam Dawsonheroku run rails c
。已更新! - glebmheroku run cat log/production.log
呢? - Chloe