27178


laravelの公式ドキュメントにあるように、

> bootstrap/app.php

のreturn $app直前で

[code]

    $app->configureMonologUsing(function($monolog) {
        $ip = new \Monolog\Processor\IntrospectionProcessor(
            \Monolog\Logger::DEBUG,
            [
                'Monolog\\',
                'Illuminate\\',
            ]
        );
        $monolog->pushProcessor($ip);
    });
    
[/code]

としましたところ、log自体が出力されなくなりました。  
どうしたらいいのか全くわからない状態です。わかる方、よろしくお願いいたします。


CC BY-SA 3.0
2016-06-29T05:49:37.573
27174
2016-06-29T06:45:56.747
10351
question
laravel
laravelのconfigureMonologUsingが動かない


configureMonologUsing()はMonologの設定に「追加」するものではなく、丸ごと「置き換える」もののようです。

元々はLaravelは、どこに出力するかの設定（Handler）などもよしなに行ってくれているため、手動で設定する場合はそれらも一緒に設定してやる必要があります。

例えばこのような感じです(最後の2行):

[code]

    $app->configureMonologUsing(function($monolog) {
        $ip = new \Monolog\Processor\IntrospectionProcessor(
            \Monolog\Logger::DEBUG,
            [
                'Monolog\\',
                'Illuminate\\',
            ]
        );
        $monolog->pushProcessor($ip);
    
        // HandlerとFormatterも手動で設定
        $monolog->pushHandler($handler = new \Monolog\Handler\StreamHandler(storage_path('logs/laravel.log'), \Monolog\Logger::DEBUG));
        $handler->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true));
    });
    
[/code]


CC BY-SA 3.0
2016-06-29T06:45:56.747
27178
2016-06-29T06:45:56.747
784
27174
answer