1

ログの再帰の問題が発生したため、1 回の操作でのみログを無効にしたいと考えています。Laravel ログのランタイム スイッチはありますか? お気に入り:

<?php
Log::stop();
// bypass log here
Log::resume();

残念ながら、上記の例のようにファサードを通じてそれを行う方法はありません。Laravelのログを一時的にオフにする最良の方法は何ですか?

4

2 に答える 2

0

カスタム リスナーを登録している場合に考えられる別の (あまり一般的ではない) 解決策は、Configファサードを使用して状態を保存し、特定のコールバックをバイパスすることです。

<?php

Event::listen('illuminate.query', function($query, $bindings, $time, $name){
    if(Config::get('log.enabled', true)){
        Log::info($query, ['context' => ['bindings' => $bindings]]);
    }
});

Log::listen(function($level, $message, $context) {
    Config::set('log.enabled', false);
    // do something bypassing listener who expects log.enabled 
    Config::set('log.enabled', true);
});
于 2014-08-18T12:58:53.847 に答える