【laravel5.5】ログファイルをwebとバッチ(CLI)で分ける

    

簡単そうで以外と方法を探すのが大変だったので忘備録。
下記のように設定することにより、webの場合はログファイル名の先頭に「web-」バッチの場合は「cli-」が付与されます。

/bootstrap/app.phpを編集

/*
|--------------------------------------------------------------------------
| Return The Application
|--------------------------------------------------------------------------
|
| This script returns the application instance. The instance is given to
| the calling script so we can separate the building of the instances
| from the actual running of the application and sending responses.
|
*/


$app->configureMonologUsing(function($monolog) use ($app) {
  
  $prefix = ( \App::runningInConsole() ? 'cli' : 'web' );
  
  $monolog->pushHandler(
    (new Monolog\Handler\RotatingFileHandler(
      
      // Set the log path
      $app->storagePath().'/logs/'.$prefix.'.log',
      
      // Set the number of daily files you want to keep
      $app->make('config')->get('app.log_max_files', 5)
      
    ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true))
  );
});
  
return $app;

もっといい方法があるかもしれません。
これではあまり小回りがきかないので直接ログのインスタンスを直接生成したい気がします。