概要
Dockerコンテナ上で動作しているLaravelのログをdocker logs
コマンドで表示させる場合の設定
docker logs
dockerドキュメントによると、
標準出力STDOUT
と標準エラー出力STDERR
にログを出すことで
docker logsにログが出てきそう。
ロギングドライバ
Dockerにはログを外部のログ記録ソフトウェアに転送する機構が用意されている。
docker logs
コマンドで確認できる内容は/var/lib/docker/containers/<コンテナID>/<コンテナID>-json.log
というファイルにJSON形式で記録されている。
このJSONファイル内にはSTDOUT
STDERR
の情報も記録されている。
記述
config/logging.phpのstack
のchannels
に「stderr」を記述することで、
標準エラー出力にLaravelからのエラーが出力されるようになる。
その内容がdocker logs [コンテナ名]
で確認できる。
stack
チャンネルは、Laravelがログを出すときデフォルトで使用されるチャンネル。
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['stderr'],
'ignore_exceptions' => false,
],
],
参考
Laravel 6 を Docker 化する。その 3 。 Docker のログへ Laravel のログを出力
Dockerコンテナのロギング機能を使ってみる
Docker + Nginx + Laravel(PHP-FPM)な環境のログを整理する