记录Laravel 5.1中的所有事件,而不会遇到“嵌套”异常

时间:2015-11-04 21:31:14

标签: laravel events laravel-5.1

如何在Laravel 5.1中记录所有事件?我试过但得到这个错误:

达到“100”的最大功能嵌套级别

我尝试将 xdebug 嵌套级别设置为更高的值(900)而没有运气。

1 个答案:

答案 0 :(得分:1)

将以下内容放入 EventServiceProvider的 boot函数中。关键是过滤掉“ illuminate.log ”事件。如果你没有过滤掉那些,你的日志记录语句将导致你的事件处理程序的递归评估。

请注意,Laravel框架似乎为了它自己的目的而广泛使用事件,因此您将在日志中看到许多“内部”框架事件。

public function boot(DispatcherContract $events)
{
    parent::boot($events);

    Event::listen('*', function()
    {
        $event = Event::firing();
        if(!starts_with($event, "illuminate.log")) {
            Log::info("Event fired: " . $event . "\n");
        }
    });
}