2

「storage/logs/lumen.log」から「php://stderr」に、ルーメンがログを書き込む場所をオーバーライドしようとしています。次のコードは私が現在試しているもので、期待どおりに動作しません。

エラーは発生せず、ログは引き続きデフォルトの場所 (storage/logs フォルダー) に書き込まれます。

そして私がするとき:

dd(app('Psr\Log\LoggerInterface'));

デフォルトの実装を取得します。

ドキュメントを誤解しましたか、それとも間違った方法でアプローチしていますか?

<?php namespace App\Providers;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        app()->instance('Psr\Log\LoggerInterface', new Logger('lumen', [$this->getMonologHandler()]));
    }

    public function getMonologHandler() {
        return (new StreamHandler('php://stderr', Logger::DEBUG))->setFormatter(new LineFormatter(null, null, true, true));
    }
}
4

2 に答える 2

3

独自のログ構成を設定するには、 and/orメソッドを拡張\Laravel\Lumen\Applicationおよびオーバーライドする必要があります。registerLogBindings()getMonologHandler()

于 2015-05-15T03:55:17.183 に答える