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

更新日期: 2019-01-09 阅读次数: 7151 分类: 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 聊聊, 查看更多联系方式