45553


毎分バッチのパフォーマンス検証のため、batch.logへscheduleへ開始ログを仕込みたいと思っています。  
以下のようにすると、ログ出力についてもスケジューリングされバッチ実行時に以下のように毎回ログが出力されてしまいました。  
コンストラクタで出力しようとするとterminalでエラーとなりそもそも実行できませんでした。  
オーバーライドしたhandleメソッドでログ出力すると、schedule : startが2行となってしまいました。  
ログ出力処理についてもバッチ化する以外になにか方法がありましたらご教授のほどお願いいたします。

[code]

    protected function schedule(Schedule $schedule)
    {
        $this->logger = app('batch.log');
        $this->logger->info('****************** schedule : start ******************');
    
        $schedule->command('aaa')->cron('* * * * * *')->withoutOverlapping();
        $schedule->command('bbb')->cron('* * * * * *')->withoutOverlapping();
        $schedule->command('ccc')->cron('* * * * * *')->withoutOverlapping();
        $schedule->command('ddd')->cron('* * * * * *')->withoutOverlapping();
        //他バッチは省略
    }
    
[/code]

↑で出力されるログ

[2018-07-12 02:57:00] batch.log.INFO: ****************** schedule : start
******************  
[2018-07-12 02:57:00] batch.log.INFO: aaa : start  
[2018-07-12 02:57:01] batch.log.INFO: aaa : end : elapsed time : 0.061  
[2018-07-12 02:57:01] batch.log.INFO: ****************** schedule : start
******************  
[2018-07-12 02:57:01] batch.log.INFO: bbb : start  
[2018-07-12 02:57:02] batch.log.INFO: bbb : end : elapsed time : 0.058  
[2018-07-12 02:57:02] batch.log.INFO: ****************** schedule : start
******************  
[2018-07-12 02:57:02] batch.log.INFO: ccc : start  
[2018-07-12 02:57:03] batch.log.INFO: ccc : end : elapsed time : 0.179  
[2018-07-12 02:57:03] batch.log.INFO: ****************** schedule : start
******************  
[2018-07-12 02:57:03] batch.log.INFO: ddd : start  
[2018-07-12 02:57:04] batch.log.INFO: ddd : end : elapsed time : 0.157

出力したいログ

[2018-07-12 02:57:00] batch.log.INFO: ****************** schedule : start
******************  
[2018-07-12 02:57:00] batch.log.INFO: aaa : start  
[2018-07-12 02:57:01] batch.log.INFO: aaa : end : elapsed time : 0.061  
[2018-07-12 02:57:01] batch.log.INFO: bbb : start  
[2018-07-12 02:57:02] batch.log.INFO: bbb : end : elapsed time : 0.058  
[2018-07-12 02:57:02] batch.log.INFO: ccc : start  
[2018-07-12 02:57:03] batch.log.INFO: ccc : end : elapsed time : 0.179  
[2018-07-12 02:57:03] batch.log.INFO: ddd : start  
[2018-07-12 02:57:04] batch.log.INFO: ddd : end : elapsed time : 0.157

＜環境＞  
php 7.0  
Laravel 5.3


CC BY-SA 4.0
2018-07-12T03:23:43.663
45544
2018-07-12T09:37:32.090
2018-07-12T03:59:18.690
29271
29271
question
laravel
laravelのKernel::scheduleメソッドに登録された毎分バッチのパフォーマンス検証するために毎分バッチの開始時にログ出力したい


すみません。自己解決しました。  
ログ出力メソッドを作り、scheduleの先頭へ以下のように追加することで対処しました。

[code]

    $schedule->call(function(){ $this->logging('****************** schedule evertMinute : start ******************'); })->everyMinute();
    
[/code]


CC BY-SA 4.0
2018-07-12T09:37:32.090
45553
2018-07-12T09:37:32.090
29271
45544
answer