服务端 Laravel 异常日志自动发送到邮件中

更新日期: 2019-03-11 阅读次数: 9210 字数: 327 分类: Laravel

Laravel 没有像 Django 一样内置发送异常邮件的功能,而这个功能非常实用,特别是

  • 服务比较多的情况下,不可能每个服务都去线上查看日志
  • 节假日可以及时接收服务异常信息

环境 Laravel 5.5

具体的代码实现,参考下面的一个链接里的文章。

163 邮箱的配置

.env 配置

MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=xxx@163.com
MAIL_PASSWORD=xxx
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=xxx@163.com
MAIL_FROM_NAME=xxx

模拟一个异常,会发现异常邮件发送失败,报错信息是

530 5.7.1 Authentication required

清除配置缓存

php artisan config:clear

并重启 php artisan serve

即可

邮箱地址白名单

默认,此类邮件会被默认归类到垃圾邮件中。所以不要忘记把发邮件地址加入到白名单中。

这不是一个很好的解决方案

这种做法有一个非常大的隐患,因为错误日志不是异步发送的,所以在邮件服务不稳定,或者错误信息量大时,会导致业务逻辑阻塞。所以,强烈不推荐这种做法。可以自己写个定时任务,扫描日志,然后异步发送报错邮件。

参考

  • https://laravel-news.com/email-on-error-exceptions

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式