在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的任何基本内容。
答案 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中。您也可以将它们写入数据库表,或者通过对此部分进行更改来通过电子邮件发送它们。