Laravel 5日志Debug功能失效求助:请求排查代码问题
Laravel控制器日志未写入问题排查方案
1. 先确认请求是否到达控制器
这是最容易忽略的前提:
- 在Vue的
getItems方法开头加console.log('触发getItems'),打开浏览器控制台确认方法是否被调用 - 修正axios GET请求的参数传递方式:axios的GET请求参数必须放在
params对象中,你当前的写法会导致参数未正确传递,可能触发路由匹配异常或控制器未执行。修改后的代码:
getItems() { axios.get("/posts/items", { params: { post_id: this.$route.params.id } }) .then((res) => { console.log('接口返回数据:', res.data) this.postDataList = res.data.data; if(this.postDataList != null){ this.itemDataList = this.postDataList[0]['items']; } }).catch(err => { console.log('请求失败:', err) // 新增错误捕获,排查请求异常 }); }
- 直接在浏览器地址栏访问
/posts/items?post_id=1(替换为实际存在的ID),如果能返回ID值,同时日志仍未写入,再继续排查后端问题。
2. 检查Laravel日志配置
- 打开
config/app.php(Laravel 5.x版本的日志配置文件),确认log_level设置:
若配置为'log_level' => env('APP_LOG_LEVEL', 'error'),则info、debug级别的日志会被过滤,需改为'debug'或'info' - 检查
.env文件:确保APP_DEBUG=true,关闭DEBUG模式可能会限制低级别日志输出 - 确认日志通道默认指向
storage/logs/laravel.log,默认配置无需修改
3. 检查日志文件权限
storage/logs/laravel.log需要web服务器用户(如www-data、apache)有写入权限:
# 修改storage目录权限 chmod -R 775 storage/ # 调整目录所属用户(根据你的服务器环境修改) chown -R www-data:www-data storage/
4. 验证日志代码有效性
你的控制器日志写法完全正确:
Log::info('kita'); Log::debug('kurukao'); logger()->debug('debug');
引入use Illuminate\Support\Facades\Log;是标准写法,无需改用use Log;(默认别名已配置,但完整命名空间引入更稳妥)
5. 其他排查方向
- 检查是否存在自定义中间件/服务提供者修改了日志行为
- 查看服务器系统日志(如
/var/log/nginx/error.log),排查是否有PHP错误或权限阻止日志写入
内容的提问来源于stack exchange,提问作者sora sakamoto
相关产品推荐
相关产品推荐

