1

我需要从正在运行的容器中获取日志并保留在主机上,因此当容器重新启动时我们不会丢失日志。

--log-driver=syslog --log-opt syslog-tag="app_name"使用运行选项可以很好地处理放入标准 apache 日志中的日志。但是,每个应用程序也有一个自定义的debug.log输出。

我尝试使用--log-opt syslog-address=unix://infra/py/appinstance/app/log/debug.log运行参数,但这不起作用。我想将调试日志插入标准系统日志,但我不知道该怎么做。有任何想法吗。

4

1 回答 1

3

选项是docker run--log-driver指定存储 docker 容器日志的位置。我们在这里谈论的日志是您从docker logs命令中获得的日志。

该日志的内容是从容器的进程标准输出错误输出中收集的。

您提到的debug.log文件不会发送到任何标准或错误输出,并且不会由 docker 处理。


您至少有两个选项可以保留这些调试消息:

写入标准输出或标准错误

您可以让您的应用程序将其调试消息写入标准或错误输出,而不是写入debug.log文件。这样,这些调试消息将由 docker 处理,并且给定--log-driver=syslog选项将保留在您的主机 syslog 服务中。

挂载卷

您还可以使用该docker run -v选项在您的容器中创建一个卷,该卷将从您的容器中的 docker 主机挂载一个目录。然后配置您的应用程序,使其在该挂载点上写入debug.log文件。

于 2015-09-01T23:22:16.137 回答