LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

Laravelのログをstderrからdocker logsに出力する

概要

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のstackchannelsに「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)な環境のログを整理する

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0