本番と開発環境でログの出力レベルを変更する

Laravel

この記事でLaravelのログ出し設定について書いているのですが、

本番と開発とで同じ様にログが出るので、本番環境でどんどんログが出るとどんどん溜まるよね。。?

と気になっており、設定を変更してみました。

設定変更おおまかな流れ

ざっくり説明を書いておきますと、

ログ出力に関しては config/logging.php に設定が書かれている。

その内容はベタ書きなので、本番・開発で出し分けられるように、以下のように記述を変更する。

'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['single'],
'ignore_exceptions' => false,
],

'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),  /////ここを.env設定を見るように変更!!
],

そして本番の.envに

LOG_LEVEL=error

を追記。

こうすると、本番環境では.envの設定のようにerror以上のログが出力され開発では.envに記述がないのでデフォルトのdebug(全部出力)が設定されるようになります

参考めも

ログレベルは emergencyalertcriticalerrorwarningnoticeinfodebug がある。
configに指定したlevel以上を出力する という動きになる。

  • debug → 全部出力
  • error → emergency、alert、critical、errorだけが出力される


stackは、復数のログ吐き出しを指定できる。
'channels' => ['single'], ここで配列で指定。
デフォルトではstackがsingleなので、singleの設定でlogが出るようになってる。

本家の解説

タイトルとURLをコピーしました