laravel - 在 laravel 中使用日志号在生产模式下显示错误
问题描述
我有一个在laravel 5.8中构建的应用程序,它处于生产模式。由于该网站是实时的,我不想向我们的用户显示任何错误。但是如果发生一些错误,那么我想要日志号或任何指示在该特定时间引发什么错误的参考。
因此,我想知道是否有任何方法可以向我们的用户显示“糟糕,出现问题 ref#123456”。这样他们就可以向我们发送屏幕截图或参考号,我们可以通过检查我们的日志文件来跟踪实际发生的情况。
提前致谢。快乐编码。
解决方案
我认为您可以将日志保存在数据库中并呈现其 ID。
你可以这样做App\Exceptions\Handler
:
https ://laravel.com/docs/5.8/errors
例如:
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Throwable $exception
* @return \Symfony\Component\HttpFoundation\Response
*
* @throws \Throwable
*/
public function render($request, Throwable $exception)
{
// Create log in db
$log = Log::create([
'message' => $exception->getMessage(),
'code' => $exception->getCode(),
'line' => $exception->getLine(),
]);
// Print log id in logs
logger("LogId {$log->id}");
//Return view error with log id
return return response()->view('errors', ['logId' => $log->id]);
}
推荐阅读
- pandas - (Pandas Dataframes)如何让行从具有重复列名的数据框中共享同一列
- python - 如果python正在复制一个对象,如何停止它?
- python - 在 Python 中连接 2 个列表的运行时
- python - 为什么我的计算不能在另一个函数中调用的函数中执行?
- react-native - React Native,Formik-Yup 验证的错误未显示
- c# - C# 类型名称未知但已声明
- c# - 如何仅在 azure devops CI env 中而不是在本地运行一些 NUnit 测试
- python - 如何在 Pandas 中使用非数字数据做数据透视表?
- android-studio - 如何将数据从 MainActivity 传递到 KOTLIN ANDROID STUDIO 中的 Recyclerview 适配器
- excel - 填充二维数组