tp8.0需配置monolog驱动实现日志按日拆分与压缩:先安装monolog/monolog,再将log.php中通道type改为'monolog',配合系统logrotate每日轮转并gzip压缩,同时禁用debug日志以从源头减容。

TP8.0 日志文件体积过大导致磁盘空间告急,需立即配置日志通道按日期自动拆分并压缩,避免手动清理或服务中断。
确认日志驱动已切换为 Monolog
TP8.0 默认仍使用 FileHandler,不支持压缩与按大小滚动,必须显式启用 Monolog 驱动才能启用 RotatingFileHandler 的完整能力。
运行 composer require monolog/monolog 安装依赖;若已安装,请跳过此步。
打开 config/log.php,找到你要配置的通道(如 'default' 或自定义通道),将 'type' => 'file' 改为 'type' => 'monolog'。
【务必保留原有 handler 配置结构,仅替换 type 值】。若直接删掉整个 log.php 重写,会导致其他通道失效。
配置 daily 拆分 + 自动压缩
Monolog 的 RotatingFileHandler 本身不内置压缩逻辑,压缩需由外部工具(如 logrotate)或通过闭包包装实现。TP8.0 推荐用系统级 logrotate 管理压缩,更稳定、可控、无需 PHP 进程参与。
在 /etc/logrotate.d/ 下新建文件 tp8-app:
/path/to/runtime/log/*.log {<br> daily<br> missingok<br> rotate 30<br> compress<br> delaycompress<br> copytruncate<br> notifempty<br> create 644 www-data www-data<br>}
把 /path/to/runtime/log/ 替换为你 TP8.0 实际日志目录路径(通常为 runtime/log/,注意是绝对路径)。
【copytruncate 是关键】:PHP 进程持续写入日志时,logrotate 清空原文件而非移动,避免因文件句柄未刷新导致日志丢失。
执行 sudo logrotate -f /etc/logrotate.d/tp8-app 手动触发一次轮转,验证是否生成 xxx.log.1.gz 文件。
补充:禁用 DEBUG 日志减少体积源头
即使做了切割压缩,高频 DEBUG 输出仍是体积膨胀主因。进入 config/app.php,检查 'app_debug' => true 是否仍开启。
生产环境必须设为 false;若需临时调试,改用 Log::channel('debug')->info(...) 写入独立通道,避免污染主日志。
同时检查 config/log.php 中各通道的 'level' 配置——主通道应设为 'error' 或 'warning',禁止 'debug'。











