记录 laravel 错误日志的来源文件名及行号,方便定位

文章目录

    最近总是看到服务器日志中出现

    local.ERROR: Creating default object from empty value

    但是,并不知道具体是哪里记录的,需要定位这行错误是哪里抛出来的。

    > grep Log::error -r app/
    app/Http/Controllers/Admin/CommentCrudController.php:            Log::error($e);
    app/Http/Controllers/Admin/SmsController.php:                   \Log::error($e);
    app/Http/Controllers/Admin/SmsController.php:                   \Log::error($e);
    app/Http/Controllers/Admin/SmsController.php:                   \Log::error($e);
    app/Http/Controllers/OrderController.php:            Log::error($result);
    app/Http/Controllers/SmsController.php:                 \Log::error($e);
    app/Http/Controllers/SmsController.php:                 \Log::error($e);
    

    这样看,其实没有什么头绪。因为记录错误的地方太多了。

    找到一个不错的解决方案

    \Log::error(sprintf("%s - line %d - SOME ERROR INFO", __FILE__, __LINE__));
    

    把上面的记录错误日志的地方,修改成这样就可以了,下次再出现错误,就知道具体是哪里报错了。

    参考

    https://stackoverflow.com/questions/39030725/laravel-5-2-get-current-line-of-log-event

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式