启用WARN日志级别后,主管不会从应用程序收集日志

时间:2017-07-11 16:49:29

标签: docker docker-compose supervisord supervisor

我有LEMP复合docker容器,由 docker-compose 编译。

我需要将所有WARNING日志从我的PHP应用程序重定向到容器的STDOUT流; 它只适用于supervisord loglevel = debug

的选项
[supervisord]
nodaemon=true
loglevel=debug

然后,来自PHP应用程序的日志广播到STDOUT:

  

lemp_1 | lemp_1 | 2017-07-11 19:09:29,524 DEBG'php-fpm'stdout   输出:lemp_1 | [11-Jul-2017 19:09:29]警告:[pool www] child 13   对stdout说:“[2017-07-11 19:09:29] app.NOTICE:你好世界[] []”

如果我将参数设置为supervisord部分[supervisord]

loglevel=warn

(或信息,错误,警报等..)我的stdout流中根本没有日志!
我需要传递给仅活动日志的消息,具有WARN级别和更高级别。 supervisord “如何理解”,从应用程序收到的日志消息级别如何? 可能它有任何日志消息格式的规范? 或者没有足够的设置?

主管配置:

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
priority=5
stdout_events_enabled=true
stderr_events_enabled=true
redirect_stderr=true

[program:nginx]
command=nginx -g 'daemon off;'
autostart=true
autorestart=true
priority=10
stdout_events_enabled=true
stderr_events_enabled=true
redirect_stderr=true

[supervisord]
nodaemon=true
loglevel=debug

1 个答案:

答案 0 :(得分:1)

你需要告诉主管将容器的标准输出写入自己的supervisord的日志,宽度:

stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0

所以你的配置是:

[program:php-fpm]
command=php-fpm -F
autostart=true
autorestart=true
priority=5
stdout_events_enabled=true
stderr_events_enabled=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
redirect_stderr=true

[program:nginx]
command=nginx -g 'daemon off;'
autostart=true
autorestart=true
priority=10
stdout_events_enabled=true
stderr_events_enabled=true
redirect_stderr=true

[supervisord]
nodaemon=true
loglevel=debug