我需要将正在运行的容器中的日志保留在主机上,因此我们不会在容器重新启动时丢失日志。
使用--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中,但我不知道该怎么做。任何想法。
答案 0 :(得分:3)
docker run
--log-driver
选项用于指定存储docker容器日志的位置。我们在这里讨论的日志是您从docker logs
命令获得的日志。
该日志的内容是从容器的流程标准输出和错误输出中收集的。
您提及的 debug.log 文件不会发送到任何标准或错误输出,并且不会由docker处理。
至少有两个选项可以保留这些调试消息:
您可以让应用程序将其调试消息写入标准或错误输出,而不是 debug.log 文件。这样,这些调试消息将由docker处理,并且--log-driver=syslog
选项将保留在主机syslog服务中。
您还可以使用docker run
-v
选项在容器中创建一个卷,该卷将从容器中的docker主机挂载目录。
然后配置您的应用程序,以便在该挂载点上写入 debug.log 文件。