指定Docker容器的日志文件

时间:2019-02-21 14:53:41

标签: docker logging docker-compose

我有这组服务,我希望为其做一些记录。某些服务正在运行节点应用程序,因此在docker logs命令中直接可见输出。
但是,有一些不同。让我们以我的Java应用程序为例。它在包装器中运行,但是日志记录而不是STDOUT写入日志文件。

如何将文件作为docker logs输出挂钩?

ps。另一个应用程序是Nginx服务器上的PHP应用程序,也带有它自己的日志文件。

-UPDATE
该应用程序是在Tanuki的Java Service Wrapper中运行的Java应用程序(.jar文件)。内置的JAR具有Log4j记录器,它通过DailyRollingFileAppender写入logs/server.log。包装器本身具有我通过>/dev/null 2>&1忽略的输出。我只是将以下行添加到了Dockerfile中。

RUN ln -sf /dev/stdout /opt/myserver/logs/server.log

这不起作用。当我使用docker-compose up myserver

时,没有输出发送

2 个答案:

答案 0 :(得分:0)

将日志文件链接到^(((?<h>[0-9]+)h)|((?<m>[0-9]+)m))+$ 。例如,在您的stdout/stderr中:

Dockerfile

答案 1 :(得分:0)

我找到了。显然,您可以通过

从Docker容器中写入日志

RUN ln -sf /proc/1/fd/1 /opt/myserver/logs/server.log

在您的Dockerfile中