define('WP_DEBUG', true);
define('WP_DEBUG_LOG', '/tmp/wp-debug.log');
# logrotate 每天切分并保留 3 份

测试站早上打开报 Error establishing a database connection,df 显示磁盘 100%,wp-content/debug.log 一天涨到 20G,全是重复的 notice。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,调试开关在测试站一直开着,某个插件每个请求都写一条未定义下标。日志文件没有轮转,磁盘写满后数据库先挂。

「WP_DEBUG_LOG 磁盘」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

处理上按这个顺序:测试站保留调试但把日志文件放到临时目录并加轮转;修掉反复出现的 notice,别让它按请求数写;加一个磁盘使用率告警,80% 就通知;生产环境保持调试关闭,日志交给统一采集。

改完只确认一件事:日志每天不超过 200MB,磁盘占用回到 60% 以下,数据库连接正常。

作者 9823189