【问题标题】:How to handle log drains in one-off dynos?如何处理一次性测功机中的日志流失?
【发布时间】:2017-09-17 06:57:46
【问题描述】:

我们正在使用 heroku 的日志排水管将我们的日志汇总到 papertrail 中。一切都很好,除了,我不确定如何从一次性 dynos 设置日志记录,我们用它来运行脚本。

我认为排水配置将适用于一次性测功机,但我没有看到我们使用 heroku 调度程序运行的作业的预期输出。为了弄清楚发生了什么,我尝试运行

# heroku run bash --app myapp
# babel-node
> var logger = require('bunyan/my_configured_logger');
> logger.info('YO');

我希望这会导致原木被运送到 papertrail,但没有骰子。所以,我尝试了更简单的命令行

> logger "YO" 

这也不起作用。因此,要么我的测试被误导,要么排水配置不适用于一次性测功机。我认为前者的可能性更大。

如何测试日志排放(为远程 papertrail syslog 配置)是否正常工作?

【问题讨论】:

  • one-off dynos docs 声明如下:“一次性 dynos 运行连接到您的终端,具有用于 STDIN 和 STDOUT 的逐字符 TCP 连接。这允许您使用像控制台这样的交互式进程。由于 STDOUT 将进入您的终端,因此应用程序日志中记录的唯一内容是测功机的启动和关闭。”自从您在 5 月份提出问题以来,您是否想办法以其他方式捕获这些日志?

标签: heroku syslog bunyan papertrail-app


【解决方案1】:

试试

heroku run:detached --app myapp babel-node -- -e 'var logger = require("bunyan/my_configured_logger"); logger.info("YO");'

这里的关键是在分离模式下运行测功机,以便stdoutstderr 进入 Heroku 日志输出而不是控制台。这意味着您不能以交互方式运行 bash,因此您必须通过 JavaScript 在 node 命令行上进行评估。

【讨论】:

    猜你喜欢
    • 2016-07-07
    • 2016-08-30
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多