
日志刷屏本质是低优先级日志无差别输出,解决需分级控制、精准过滤与合理轮转;应先确认来源与级别,再用journalctl抑制、调整rsyslog或应用级别、临时过滤及logrotate归档。
日志刷屏本质是大量低优先级(如 debug 或 info)日志被无差别输出,挤占终端或文件空间。解决核心不是“关掉日志”,而是分级控制 + 精准过滤 + 合理轮转。
先判断刷屏的是哪类日志:
journalctl 实时输出(如 journalctl -f),说明是 systemd-journald 收集的系统/服务日志;/var/log/messages、/var/log/syslog 或应用自定义日志文件持续增长,需查清是 rsyslogd 转发的,还是程序直写文件;INFO、DEBUG、ERR、error —— 这是过滤的关键依据。systemd 系统推荐优先使用 journalctl 控制输出:
journalctl -p err..alert -f(显示 err、warning、crit、alert、emerg);journalctl -p warning..emerg -f(跳过 info/debug);journalctl -u nginx.service -p err -f,避免全局刷屏;journalctl --since "10 minutes ago" -p err -f。若刷屏来自 rsyslog 管理的日志(如 /var/log/messages):
/etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf,找到对应 facility 的规则行,例如:*.* /var/log/messages → 改为 *.warning /var/log/messages(只记录 warning 及以上);sudo systemctl restart rsyslog;DEBUG 模式;关闭方式通常是改环境变量(如 LOG_LEVEL=WARNING)或配置文件中的 level 字段。不修改配置也能快速应对:
grep -v 屏蔽干扰项:tail -f /
var/log/app.log | grep -v "DEBUG\|INFO";awk 提取关键字段:tail -f /var/log/auth.log | awk '$5 ~ /failed|invalid/ {print}';logrotate 防止单个文件无限膨胀:/etc/logrotate.d/myapp 中添加:/var/log/myapp.log { daily rotate 7 compress missingok notifempty }。