Laravel - 处理500错误消息

时间:2012-12-04 07:56:00

标签: logging laravel

在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'”

如何在事件监听器中获取stacktrace字符串..是否可能?抱歉,如果我不理解laravel的任何基本内容。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

Laravel论坛上有关于Laravel Events的一个棘手话题。您可以查看列表here

答案 2 :(得分: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中。您也可以将它们写入数据库表,或者通过对此部分进行更改来通过电子邮件发送它们。