laragon下配laravel daily日志需路径、权限、驱动、调用四者闭环:手动创建storage/logs/prod/子目录,配置logging.php新增production_daily通道并设'lock'=>false,default指向它,清缓存后log::info()即可写入日期格式日志文件。

在 Laragon 环境下配 Laravel 的 Daily 日志通道,核心不是改 `.env` 就完事,而是确保路径、权限、驱动配置和调用方式四者闭环。Laragon 默认用 Apache + PHP(Win),Windows 文件系统无 `flock()` 阻塞问题,但 daily 驱动仍需显式关 lock 以防跨平台部署迁移时出错;同时要注意 Laragon 的 `storage/logs/` 目录默认可写,但子目录需手动创建。
1. 修改 config/logging.php 新增 daily 通道
在 config/logging.php 的 'channels' 数组里加一个独立通道(不要嵌套在 stack 里):
示例(推荐直接复制):
'production_daily' => [<br> 'driver' => 'daily',<br> 'path' => storage_path('logs/prod/laravel.log'),<br> 'level' => 'debug',<br> 'days' => 30,<br> 'lock' => false,<br> 'permission' => 0664,<br>],
注意:
• storage_path('logs/prod/laravel.log') 中的 prod/ 子目录必须存在——Laragon 不自动创建,需手动在 storage/logs/ 下建好 prod 文件夹;
• 'lock' => false 是强制项,即使 Windows 不卡,也建议写死,避免上线 Linux 服务器时突然阻塞;
• 'permission' 在 Windows 下不生效,但保留不影响运行,利于后续部署一致性。
2. 设置默认通道并验证环境变量
把 'default' 改为新通道名:
'default' => 'production_daily',
然后确认 .env 中没有冲突配置:
• 删除或注释掉 LOG_CHANNEL=stack 这类旧设置;
• 不需要设 LOG_CHANNEL,因为 default 已明确指向 daily 通道;
• 若已缓存配置,执行 php artisan config:clear(Laragon 终端中运行)。
3. 检查日志路径权限与目录结构
Laragon 的 Apache 进程以当前 Windows 用户身份运行,一般无需改权限,但必须确保:
-
storage/logs/目录存在且可写(默认满足) - 你自定义的子路径如
storage/logs/prod/已手动创建 - 首次写日志时,文件名是
laravel-2026-08-17.log(日期格式固定,不可改前缀) - 如果没生成当天文件,先检查
storage/logs/prod/是否真有写入权限(右键 → 属性 → 安全 → 当前用户有“写入”勾选)
4. 调用与验证
代码中直接使用:
Log::info('服务启动完成');
因为 default 已设为 production_daily,这行会自动写入 storage/logs/prod/laravel-2026-08-17.log。
如需临时切通道,可用:
Log::channel('production_daily')->warning('支付回调超时');
别用 Log::production_daily()——这是常见错误,Laravel 只认 channel('name') 形式。











