小编Ego*_*eux的帖子

Monolog stdout/stderr 记录到 Docker 中的当前终端进程

我有一个在 Docker 中运行的 PHP/Symfony 应用程序,它使用 Monolog 登录到 stdout/stderr。这一切都很好,除非在容器内运行 Symfony 控制台命令。

monolog:
    handlers:
        stdout:
            type: filter
            handler: stdout_unfiltered
            max_level: notice
            channels: ['!event']

        stdout_unfiltered:
            type: stream
            level: debug
            path: 'php://stdout'

        stderr:
            type: stream
            level: warning
            channels: ['!event']
            path: 'php://stderr'

        console:
            type: console
            channels: ['!console', '!doctrine', '!event']
            process_psr_3_messages: false

Run Code Online (Sandbox Code Playgroud)

问题在于,无论何时执行命令,“stdout”、“stderr”和“console”处理程序都会记录到当前终端进程。这会导致控制台输出混乱,并且docker logs不包含日志条目:http : //i.imgur.com/yB1IKrR.png

是否有一种简单的方法可以始终将日志输出发送到 php-fpm(或任何工作程序)进程?

symfony monolog docker

6
推荐指数
1
解决办法
2455
查看次数

标签 统计

docker ×1

monolog ×1

symfony ×1