博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel 的异常处理和日志
阅读量:6503 次
发布时间:2019-06-24

本文共 1421 字,大约阅读时间需要 4 分钟。

学 Laravel 和 Vuejs,你真应该来

在 Laravel 的应用当中使用异常处理其实是很有用的,它可以追踪到你的错误在哪,并且你的异常信息也是可以直接保存到 storage/logs/laravel.log 中的,所以,这样的机制也给了我们查看异常的便利。

不处理某些异常

然而在现实的应用中,有些异常处理其实我们根本都不关心它是否抛出了,比如 TokenMismatchException,这个异常我觉得在线上的环境是可以直接忽略的,所以在 Laravel 中,其实我们可以很容易就能配置出这样的效果,我们可以打开 App\Exceptions\Handler 文件,在 $dontReport 指定就可以了,Laravel 本身就自带了一些不需管的异常处理,如果是我们自定义的异常处理的话,在我们不想管它是否是抛出的话,就可以直接配置 $dontReport :

class Handler extends ExceptionHandler{    protected $dontReport = [        MyCustomException::class    ];}

Log 种类

而如果是异常抛出的话,Laravel 会将异常的信息写入 storage/logs/laravel.log 文件中的,当然这是默认的情况,因为 Laravel 其实有四种不同格式的日志记录:

  • 单个 log 文件,配置为 single

  • 每天记录一个 log 文件,配置为 daily

  • Syslog 处理,配置为 syslog

  • 错误日志处理,配置为 errorlog

在这里需要注意一点是,如果你使用的是 daily 的配置的话,Laravel 默认只保存最近五天的 log 文件。

自定义 Handler

其实 log 背后也不是那么神秘,就是使用了 PHP 社区非常棒的一个日志处理 package : Monolog 。所以,其实如果说你想自定义一个日志处理器(LogHandler)的话,也是很简单的,比如你可以在 bootstrap/app.php 中定义,就把代码放在返回 $app 这个变量之前就可以了,伪代码如下:

$app->configureMonologUsing(function ($monolog) {    $monolog->pushHandler(        new WebhookHandler($webhookUrl)    );});return $app;

异常分类处理

如果你想分开处理这些异常信息,你也是可以直接在 App\Exceptions\Handler 的 report() 方法做处理的,比如说,如果你使用了类似 sentry 这样的服务,就是在这里添加两行代码就OK了:

if ($this->shouldReport($e)) {  app('sentry')->captureException($e);}

总结

Laravel 的异常处理和日志紧密结合,但是有时很灵活的,我们还是很容易地自定义自己的需求和分类处理异常信息。

图片描述

关注 codecasts 公众号,定时送书,送福利

第一次点赞最高送书活动的中奖同学为:conversant,评论的内容是:laravel 学习过程中看了很多 laravist 的视频,很赞,顶我!这位同学记得向公众号发你的联系方式和地址。

转载地址:http://bcqyo.baihongyu.com/

你可能感兴趣的文章
利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
查看>>
指针和引用的区别
查看>>
运行PHP出现No input file specified错误解决办法
查看>>
【重建】从FJOI2016一试谈起
查看>>
selenium之frame操作
查看>>
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
webpack入门(二)what is webpack
查看>>
UnitOfWork以及其在ABP中的应用
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
for语句内嵌例题与个人理解
查看>>
眠眠interview Question
查看>>
[转]CSS hack大全&详解
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
你必须知道的.net学习总结
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>
大家好,新年快乐。
查看>>