1

在 laravel 中,我想更改错误消息并将其记录为 404 和 500 事件。我在 routes.php 中通过事件监听器尝试了 404 事件,

Event::listen('404', function()
{
Log::write('404', 'Could not find : '.URL::full());
return Response::error('404');
});

那对我来说很好。并使用当前 url 记录错误消息。但是对于 500 个错误,我也想记录堆栈跟踪。我想要像“500 - 未捕获的异常:'exception_message_and_stack_trace'”这样的日志消息

如何在事件侦听器中获取堆栈跟踪字符串.. 有可能吗?对不起,如果我不了解 laravel 的任何基本内容。

4

3 回答 3

1

404 和 500 事件没有太多关于引发它们的错误的信息,所以你不能真正在那里进行堆栈跟踪。它们基本上只用于用户的公共消息,他们可能会点击他们不应该点击的东西。

对于日志记录,您应该在 config/error.php 中使用 logger 闭包,用您自己的日志记录逻辑填充闭包,它可以访问异常对象。

于 2012-12-05T14:18:12.977 回答
0

Laravel 论坛上有一个关于 Laravel 事件的热门话题。您可以在此处查看列表。

于 2012-12-04T10:27:27.713 回答
0

尝试将代码添加到 application/config/error.php。通过在该文件中将 'log' 设置为 true 来启用日志记录。然后在底部添加对 Log::write() 的调用,如下所示:

    'logger' => function($exception)
    {
            Log::write('error', $exception);
            Log::exception($exception);
    },

这将使异常显示在 storage/logs/YYYY-MM-DD.log 中。您也可以将它们写到数据库表中,或者通过更改本节将它们通过电子邮件发送。

于 2013-06-06T18:52:10.587 回答