LoginSignup
48
20

More than 5 years have passed since last update.

Laravel5.5 ConsoleとHttpのログファイルを分ける

Last updated at Posted at 2018-05-18

Qiitaデビューしました。
初めまして、ゆうきゃんです。
メンタル弱いのでツッコミはお手柔らかにお願いします!

初投稿ということで簡単なものをご紹介します。

目的

Laravelのログはデイリーログを指定した場合は下記のように日毎にローテートされます。
storage/logs/laravel-yyyy-mm-dd.log

開発中は自分のタイミングでログが出るのでいいのですが、
本番運用が始まるとバッチ処理のコンソールログとブラウザからのアクセスログが入り混ざってログが読みづらくなってきます。

ということで、やっていくぞ!!

実装

システム全体の起動処理を変更するのでログ設定用のサービスプロバイダを作成します。

$ touch app/Providers/LogServiceProvider.php

app/Providers/LogServiceProvider.php

Illuminate/Log/LogServiceProvider を元に拡張します。

<?php
namespace App\Providers;

use Illuminate\Log\Writer;
use Illuminate\Log\LogServiceProvider as ServiceProvider;

class LogServiceProvider extends ServiceProvider
{
    /**
     * Configure the Monolog handlers for the application.
     *
     * @param  \Illuminate\Log\Writer  $log
     * @return void
     */
    protected function configureDailyHandler(Writer $log)
    {
        $log->useDailyFiles(
            sprintf("%s/logs/%s.log"
                , $this->app->storagePath()
                , $this->getFileName()
            ),
            $this->maxFiles(),
            $this->logLevel()
        );
    }

    /**
     * Logging file name.
     *
     * @return string
     */
    private function getFileName()
    {
        return 'laravel-' . php_sapi_name();
    }
}

config/app.php

config/app.php へ LogServiceProvider を追記します。

    'log' => env('APP_LOG', 'daily'),

    'providers' => [
        // 追加
        App\Providers\LogServiceProvider::class,
    ],

以上、実装完了です!

結果

  • storage/logs/laravel-cli-yyyy-mm-dd.log
  • storage/logs/laravel-cli-server-yyyy-mm-dd.log
  • storage/logs/laravel-apache-yyyy-mm-dd.log

上記のように各種ログファイルに別れて出力されます。

バージョン

5.4と5.5はこの書き方で動くハズです。
5.3と5.6はログ周りの処理変わってたような気がします。
時間あるときに調べてみます。

参考

48
20
0

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
  3. You can use dark theme
What you can do with signing up
48
20