服务端 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式