heroku - 如何查看全部日志

我在heroku上有一个小应用程序。 每当我想看日志时,我都会去命令行作 web

heroku logs

这只能让我看到大约100行。 有没有办法在heroku上查看咱们的应用程序的完整日志? bash


#1楼

对于雪松堆栈,请参阅: app

https://devcenter.heroku.com/articles/oneoff-admin-ps 工具

你须要运行: post

heroku运行bash ... spa


#2楼

Heroku将日志视为按时间排序的事件流。 出于各类缘由,不建议在此类环境中访问文件系统上的*.log文件。 命令行

首先,若是您的应用有多个dyno,则每一个日志文件仅表明您应用事件的部分视图。 您必须手动聚合全部文件才能得到完整视图。 日志

其次,Heroku上的文件系统是短暂的意思,不管什么时候重启或移动dyno(大约天天一次 )日志文件都会丢失。 所以,您最多只能得到一天的单个dyno日志。 code

最后,在运行heroku console甚至heroku run bashCedar堆栈上, heroku run bash不会将您链接到当前正在运行的dyno。 它专门为bash命令生成一个新的。 这称为一次性过程 。 所以,您将找不到运行实际http进程的其余dynos的日志文件,这些进程是为heroku runrouter

通常来讲, 记录和可见性是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的事件流并自行进行后处理/分析。

简介:不要使用heroku consoleheroku run bash来查看静态日志文件。 使用heroku logs或日志记录加载项将Heroku的日志事件流输入到您的应用程序中。


#3楼

heroku logs -t向咱们显示实时日志。


#4楼

可能值得将免费的Papertrail计划添加到您的应用程序中。 零配置,您能够得到7天的日志数据,最高可达10MB /天,并能够搜索2天的日志。


#5楼

另请参阅各个流/过滤器。

例如,仅尾随您的应用程序日志

heroku logs --source app -t

或者只查看路由器日志

heroku logs --ps router

或者把它们连在一块儿

heroku logs --source app --ps worker

超好的..

相关文章
相关标签/搜索