【问题标题】:How to check logs for running container on Heroku?如何检查 Heroku 上正在运行的容器的日志?
【发布时间】:2019-12-19 09:30:13
【问题描述】:

我在Heroku 上部署了一个示例Java 类似容器的应用程序。之后我制作了heroku container:push <name>heroku container:release <name>。命令有效,但我不知道应用程序本身是否正在运行,因为它应该每天触发几次。

我试图查看一般日志,但一无所获。在 Heroku 中哪里可以找到容器相关的日志?

更新:

我的日志如下:

2019-12-18T21:21:20.002711+00:00 app[api]:用户创建的版本 v4

2019-12-18T21:21:20.002711+00:00 app[api]:已部署的工作人员 (c77c435c1355) 由用户

此后,没有任何日志出现。

【问题讨论】:

  • 你跑heroku logs了吗?
  • @codefinger 我在帖子中添加了日志。我应该添加其他内容吗?

标签: java docker heroku containers


【解决方案1】:

如果您使用日志框架(log4j、java Logging),您仍然需要对其进行初始化以记录到标准输出(控制台),然后您应该能够在 Heroku“查看日志”中看到您的日志(或者确实使用CLI heroku 日志)。

你在使用 log4j 吗?在应用程序的类路径中添加 log4j.properties。 您也可以尝试使用 System.out.println 登录到标准输出。

希望对你有帮助。

贝佩

【讨论】:

  • 问题略有不同,我的应用程序正在记录,但它正在 Heroku 上的容器内记录。我的问题是如何像 Kibana、Sentry 或任何其他日志记录软件那样进一步公开这些日志。
【解决方案2】:

正如@Beppe C 的回答所提到的,我可以使用 log4j 或类似的日志记录解决方案。

日志记录有多种可能性。

  1. 在 Heroku 中使用插件,例如 Papertrail,它会从 Docker 中抓取日志并将它们发布到自己中。您可以在那里查看、过滤、搜索和归档日志。

  2. 使用外部系统,例如 Sentry、AWS Cloudwatch,应有尽有。您将需要设置附加程序并配置到发送日志的位置。它们将从应用程序发送。您只会看到特定于应用程序的日志,而不是第一个解决方案中特定于 Heroku 的日志。

您有两个主要选项,有时最好同时使用它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多