Laravel如何实现按业务分类记录日志的自定义日志通道功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1063个文字,预计阅读时间需要5分钟。
直接修改配置文件,添加一个通知配置行:
常见错误是只加了通道名但没指定 driver,或者写了 driver => 'single' 却没配 path,结果日志写不进去也不报错。
- 必须指定
driver:比如'driver' => 'single'、'driver' => 'daily'或'driver' => 'stack' - 如果用
single或daily,必须提供path(如storage_path('logs/payment.log')) - 通道名不能含点号或大写字母,否则
Log::channel('pay-ment')会静默失败 - 配置完别忘了清缓存:
php artisan config:clear,否则新通道不生效
如何让不同业务模块写到不同日志文件
靠 Log::channel('xxx') 手动指定通道最稳妥。不要试图在中间件或全局事件里“自动切换通道”,那会污染调用链、干扰异步任务和队列消费。
典型场景是支付回调、用户注册、库存扣减这些高敏感操作,各自需要隔离的日志路径和格式。
本文共计1063个文字,预计阅读时间需要5分钟。
直接修改配置文件,添加一个通知配置行:
常见错误是只加了通道名但没指定 driver,或者写了 driver => 'single' 却没配 path,结果日志写不进去也不报错。
- 必须指定
driver:比如'driver' => 'single'、'driver' => 'daily'或'driver' => 'stack' - 如果用
single或daily,必须提供path(如storage_path('logs/payment.log')) - 通道名不能含点号或大写字母,否则
Log::channel('pay-ment')会静默失败 - 配置完别忘了清缓存:
php artisan config:clear,否则新通道不生效
如何让不同业务模块写到不同日志文件
靠 Log::channel('xxx') 手动指定通道最稳妥。不要试图在中间件或全局事件里“自动切换通道”,那会污染调用链、干扰异步任务和队列消费。
典型场景是支付回调、用户注册、库存扣减这些高敏感操作,各自需要隔离的日志路径和格式。

