ログの再帰の問題が発生したため、1 回の操作でのみログを無効にしたいと考えています。Laravel ログのランタイム スイッチはありますか? お気に入り:
<?php
Log::stop();
// bypass log here
Log::resume();
残念ながら、上記の例のようにファサードを通じてそれを行う方法はありません。Laravelのログを一時的にオフにする最良の方法は何ですか?
カスタム リスナーを登録している場合に考えられる別の (あまり一般的ではない) 解決策は、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);
});