Laravel捕获呐喊app级别异常并发布到具有唯一ID的日志#

时间:2014-01-15 19:26:32

标签: php exception laravel laravel-4

我希望通过对用户更友好的应用程序进行错误报告。我将用允许用户提交问题的表单替换'Whoops'屏幕(在生产中)。我想知道是否有一种简单的方法可以在错误日志中向堆栈跟踪添加特定的ID#(唯一整数),以便我们可以轻松查看生产时生成的特定错误。

1 个答案:

答案 0 :(得分:3)

执行此操作的简单方法是app/start/global.php。在Application Error Handler下,您要记录错误,并生成GUID(或类似的东西)。

App::error(function(Exception $exception, $code)
{
    // Generate a unique ID for this error...
    $unique_id = uniqid();

    // log the error
    Log::error(str_repeat('-', 40));
    Log::error("Exception for $unique_id");
    Log::error($exception);

    // return error form
    return View::make('whoops_error_form')->with('unique_id', $unique_id);

});

您的whoops_error_form模板会有一个隐藏的表单,您可以在其中提交应用程序错误。所有报告都将记录在app / storage / logs中。

通过在App :: error上返回视图,您将禁用其他异常处理程序(例如Whoops!)