【问题标题】:How to view log4j logs running inside a docker container?如何查看在 docker 容器内运行的 log4j 日志?
【发布时间】:2015-07-02 15:54:12
【问题描述】:

作为 Docker 的新手:我正在使用 Docker 主机运行大约 11 个容器,其中一个容器正在运行 java 应用程序,其中我使用 log4j 日志记录来记录。如何在运行 Docker compose 时仅访问日志。我试图将日志捕获到 log4j.log 文件中,但这仅在 java 应用程序终止后创建。

【问题讨论】:

  • 设置网络日志可能更有用。您将日志发送到容器外(例如发送到中心位置)并对其进行分析。见*.com/questions/11759196/…

标签: java linux log4j docker


【解决方案1】:

假设您已将 log4j 配置为登录标准输出,并且您正在使用 commnad:java -jar ... 运行应用程序,您应该能够使用以下命令检查日志:

$ docker-compose logs name_of_container

【讨论】:

  • 它有效!感谢您的提示,一个小问题是,在一台服务器上,我使用主管生成了两个进程,一个用于使用 ant 脚本执行 java,另一个用于启动 tomcat7。在这种情况下,我无法查看日志。
  • 一般来说,在单个容器中拥有主管或运行多个应用程序并不是一个好主意。例如,如果其中一个应用程序停止工作,它可能会给您带来问题。
  • 是的,我确实观察到了这一点。会尽量不要。谢谢!