現象
Dockerで動かしているapache(※)のエラーログをDocker Logsに出したかったので、以下のように標準エラー出力するように設定したがDocker Logsに出力されない。
ErrorLog /dev/stderr
一方、標準出力を指定するとDocker Logsに出力される。
ErrorLog /dev/stdout
※httpdイメージは使っておらず、CentOSイメージの中でインストールしたapache
調査結果
httpdプロセスの fd/2
がttyではなくログファイルを向いていた。
# ls -l /proc/1/fd
total 0
lrwx------ 1 root root 64 Nov 3 14:53 0 -> /dev/pts/0
lrwx------ 1 root root 64 Nov 3 14:53 1 -> /dev/pts/0
l-wx------ 1 root root 64 Nov 3 14:53 2 -> /var/log/httpd/error_log
以下省略
補足情報
PHPのエラーは以下の設定でDocker Logsに出力できた。
ini_set('error_log', 'php://stderr');
CGI版のphpであればphp.iniの設定で出せるかもしれない?
display_errors = stderr