You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 每日日志文件的删除机制及触发运行时机是什么?

Laravel 5.8 每日日志保留与清理机制说明

1. log_max_files 配置有效性

Laravel 5.6 版本重构日志系统之后,原全局配置项log_max_files已失效,对应功能替换为每个daily驱动的日志通道独立配置的days参数,你自定义reconciliation通道中的'days' => 30就是控制该通道日志保留天数的唯一有效配置。

2. 旧日志清理触发时机

Laravel 没有独立的定时任务执行日志清理,清理逻辑为被动触发:每次往对应daily通道写入新日志时,会先执行一次旧文件扫描清理流程,统计符合命名规则的日志文件数量,超过days配置数量的最早生成的文件会被删除。

3. 仅保留7天问题排查方向

  • 确认配置实际加载值:执行打印代码dd(config('logging.channels.reconciliation')),检查返回的days参数是否为30,排查是否存在环境配置覆盖、配置缓存未清理的问题。
  • 确认日志调用通道是否正确:写入自定义日志时需要显式指定通道Log::channel('reconciliation')->info('日志内容'),如果未指定通道,会走默认日志通道的保留规则,若默认通道days配置为7就会出现仅保留7天的问题。
  • 确认日志文件命名规则:Laravel 官方daily驱动默认识别的日志文件名格式为[自定义前缀]-YYYY-MM-DD.log,如果你的日志文件是自行创建的,命名不符合该规则,清理逻辑会直接忽略该类文件,不会纳入保留数量统计。

4. 手动验证清理逻辑的方法

你可以直接执行以下代码主动触发对应通道的清理流程,提前创建的符合命名规则的超期日志文件会被直接删除:

$logger = \Log::channel('reconciliation');
$logger->getLogger()->getHandlers()[0]->rotate();

内容的提问来源于stack exchange,提问作者Blake McGillis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:45:04