これまでは PHP-FPM で catch_workers_output = yes
に設定のうえで、PHPコードから標準出力や標準エラー出力に出力を出すと、
WARNING: [pool www] child 101 said into stderr: "標準エラー出力に出した内容"
と、余計な接頭辞がつけられていました。
- nginxとphp-fpmとエラーログ - Qiita
- docker - Why PHP-FPM prefixes a warning when writing to stdout? - Stack Overflow
余計な接頭辞はDockerコンテナでログを標準出力/標準エラー出力で管理したいときに邪魔なものでした。
以前調べたときは解決策がなく同じような理由の Issue もあがっていたのですが、PHP 7.3 で追加された PHP-FPM の設定で解決できるようになっていました。
- PHP :: Request #71880 :: Optionally disable warnings when writing to STDOUT
- Logs to stdout get prefixed with warning in php-fpm image · Issue #207 · docker-library/php
PHP-FPM の設定で decorate_workers_output
を設定します。
php-fpm.conf
catch_workers_output = yes
decorate_workers_output = no
decorate_workers_output boolean
Enable the output decoration for workers output when catch_workers_output is enabled. Default value: yes. Available as of PHP 7.3.0.