使 Supervisord 日志记录到文件和标准输出

Kri*_*son 7 supervisord docker

我有一个运行 ping 命令的 docker 容器。这个过程由supervisord管理,这是我的配置文件:

[supervisord]
nodaemon=true

[program:ping]
command=ping 1.1.1.1
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/ping.out.log
Run Code Online (Sandbox Code Playgroud)

of正在保存stdoutping 1.1.1.1/var/log/ping.out.log

我还希望将其发送到,/dev/stdout以便我可以在控制台中查看日志。

我的做法是对tail -f日志文件运行第二个进程。所以我的 hacky 配置文件如下所示:

[supervisord]
nodaemon=true

[program:ping]
command=ping 1.1.1.1
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/ping.out.log

[program:ping-log]
command=tail -f /var/log/ping.out.log
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
redirect_stderr=true
Run Code Online (Sandbox Code Playgroud)

问题是,这种“hacky”方法可以吗?或者有更好的方法来做到这一点吗? 我希望能够运行docker log <container id>以获取我的日志