首页 文章

heroku - 如何查看所有日志

提问于
浏览
423

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

heroku logs

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

16 回答

  • 8

    您可以使用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
    
  • 133

    heroku中的日志记录有很大改进!

    $ heroku logs -n 500
    

    更好!

    $ heroku logs --tail
    

    参考:http://devcenter.heroku.com/articles/logging

    UPDATED

    这些不再是附加组件,而是默认功能的一部分:)

  • -2

    我建议使用插件,我使用Logentries . 要使用它,请在命令行中运行:

    heroku addons:create logentries:le_tryit

    (该命令为免费帐户创建插件,但显然您可以根据需要升级)

    Logentries允许您每月节省高达5GB的日志量 . 该信息可在过去7天内通过命令搜索进行搜索,并且具有实时警报 .

    因此,要回答您的问题,通过使用此插件,您可以确保当您达到Heroku默认保存的1500行时,您的日志不会再丢失 . 希望这可以帮助!祝你有美好的一天!

  • 723

    Update (thanks to dawmail333):

    heroku logs -n 1500
    

    或者,将日志拖到现场

    heroku logs -t
    

    Heroku log documentation

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

    或者(旧方法):

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

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

    heroku logs -n 1500 > log

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

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

    对于连续记录,只需每隔x分钟(或秒)使用watch进行迭代 .

  • 2

    可能值得将free Papertrail plan之类的内容添加到您的应用中 . 零配置,您可以获得7天的日志数据,最高可达10MB /天,并可以搜索2天的日志 .

  • 19

    对于WAR文件:

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

    以下帮助我:

    heroku logs --app appname
    

    希望它会帮助某人 .

  • 11

    关注heroku logging

    要查看您的日志,我们有:

    • logs命令默认情况下会检索100个日志行 .

    heroku日志

    • 显示最多1500行, - num(或-n)选项 .

    heroku日志-n 200

    • 实时显示日志

    heroku logs --tail

    • 如果你在heroku上有很多应用程序

    heroku logs --app your_app_name

  • 0

    heroku logs -t 向我们展示了实时日志 .

  • 8

    要查看详细日志,您需要在 production.rb 文件中放置两行:

    config.logger = Logger.new(STDOUT)
    config.logger.level = Logger::DEBUG
    

    然后跑步

    heroku logs -t
    

    你可以看到详细的日志 .

  • 7

    对于雪松堆栈,请参阅:

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

    你需要运行:

    heroku运行bash ...

  • 16

    您需要使用 -t--tail 选项,您需要定义您的heroku应用程序名称 .

    heroku logs -t --app app_name
    
  • 2

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

    例如,仅列出您的应用程序日志

    heroku logs --source app -t
    

    或者只查看路由器日志

    heroku logs --ps router
    

    或者把它们连在一起

    heroku logs --source app --ps worker
    

    超好的..

  • 1

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

    首先,如果您的应用有多个dyno,那么每个日志文件只代表您应用事件的部分视图 . 您必须手动聚合所有文件才能获得完整视图 .

    其次,Heroku上的文件系统是短暂的意思,无论何时重启或移动dyno(发生在once a day左右),日志文件都会丢失 . 所以你最多只能得到一天's view into that single dyno'的日志 .

    最后,在Cedar stack上运行 heroku console 甚至 heroku run bash 并没有将您连接到当前正在运行的dyno . 它专门为 bash 命令生成一个新的命令 . 这称为one-off process . 因此,您将找不到运行实际http进程的其他dynos的日志文件,该进程是为 heroku run 生成的 .

    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 ...
    

    这对于立即观察应用程序的行为非常有用 . 如果要将日志存储更长时间,可以使用提供日志保留,警报和触发器的众多日志中的一个logging add-ons .

    最后,如果您想自己存储日志文件,您可以设置自己的syslog drain以接收来自Heroku的事件流并自行进行后处理/分析 .

    摘要:请勿使用 heroku consoleheroku run bash 查看静态日志文件 . 管使用 heroku logs 或日志加载项进入Heroku的应用程序日志事件流 .

  • 1

    我更喜欢这样做

    heroku logs --tail | tee -a herokuLogs
    

    您可以让脚本在后台运行,您只需按照自己想要的方式从文本文件中过滤日志 .

  • 3

    以上答案非常有用,它将帮助您从命令行查看 . 如果您想从GUI进行操作,那么您必须登录到您的heroku帐户,然后选择您的应用程序,最后单击查看日志

相关问题