Laravel 7升级至10后日志存大量HTML及Session报错求助
问题解决方案
1. Session store not set on request(购物车包会话错误)
- 确认购物车包兼容性:michaelbelgium/shoppingcart需适配Laravel 10版本,先查看
composer.json里的包版本是否支持Laravel 10。若版本过旧,执行composer require michaelbelgium/shoppingcart:^6.0(具体版本以包官方兼容说明为准)更新到兼容版本。 - 校验会话中间件配置:Laravel 10中
StartSession中间件必须在会话操作前执行。确保购物车相关路由应用了web中间件组(默认包含StartSession),不要将这类路由放在api中间件组下(api组默认不启用会话)。 - 避免提前调用会话:如果在路由闭包、控制器构造函数里直接调用购物车方法,会因会话未初始化触发错误。把购物车操作移到控制器的业务方法中,或在构造函数里添加
$this->middleware('web')确保会话中间件优先运行。
2. 日志写入大量HTML导致文件暴涨
- 排查隐藏的dump输出:
- 检查所有Blade视图,尤其是
plantilla_tienda.blade.php布局文件,确认是否存在@dump()或@dd()指令。 - 检查自定义中间件、服务提供者,看是否在请求/响应处理流程中调用了
dump()方法。 - 暂时禁用非必要第三方包,排查是否有调试类包自动添加dump输出。
- 检查所有Blade视图,尤其是
- 调整日志格式化规则:Laravel 10默认日志格式可能会记录错误页面的HTML内容。修改
config/logging.php,自定义错误日志格式,仅记录核心错误信息与堆栈跟踪:'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['single'], 'formatter' => Monolog\Formatter\LineFormatter::class, 'formatter_with' => [ 'format' => "%datetime% %level_name%: %message% %context% %extra%\n", ], ], // 其他通道配置... ] - 修复404错误根源:日志中的HTML源于
storage/productos_imagenes/marcas/.jpg这个无效URL触发的NotFoundHttpException,错误页面的dump内容被连带记录。找到项目中生成该URL的代码(大概率是视图里图片路径拼接时品牌名称为空),修复URL生成逻辑,避免触发无效请求。
内容的提问来源于stack exchange,提问作者AugustoM
相关产品推荐
相关产品推荐

