自定义日志在docker中

时间:2015-09-01 19:22:05

标签: docker docker-machine

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

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

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

写入stdout或stderr

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

装载卷

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