当前位置: 首页 > 新闻动态 > 技术教程

Linux日志刷屏怎么处理_日志级别与过滤技巧【教学】

作者:舞姬之光 浏览: 发布日期:2025-12-21
[导读]:日志刷屏本质是低优先级日志无差别输出,解决需分级控制、精准过滤与合理轮转;应先确认来源与级别,再用journalctl抑制、调整rsyslog或应用级别、临时过滤及logrotate归档。
日志刷屏本质是低优先级日志无差别输出,解决需分级控制、精准过滤与合理轮转;应先确认来源与级别,再用journalctl抑制、调整rsyslog或应用级别、临时过滤及logrotate归档。

日志刷屏本质是大量低优先级(如 debuginfo)日志被无差别输出,挤占终端或文件空间。解决核心不是“关掉日志”,而是分级控制 + 精准过滤 + 合理轮转

确认日志来源与级别

先判断刷屏的是哪类日志:

  • 如果是 journalctl 实时输出(如 journalctl -f),说明是 systemd-journald 收集的系统/服务日志;
  • 如果是 /var/log/messages/var/log/syslog 或应用自定义日志文件持续增长,需查清是 rsyslogd 转发的,还是程序直写文件;
  • 注意日志行开头常带级别标识,如 INFODEBUGERRerror —— 这是过滤的关键依据。

用 journalctl 快速抑制刷屏

systemd 系统推荐优先使用 journalctl 控制输出:

  • 只看错误及以上:journalctl -p err..alert -f(显示 errwarningcritalertemerg);
  • 排除 debug/info:journalctl -p warning..emerg -f(跳过 info/debug);
  • 限定服务范围:journalctl -u nginx.service -p err -f,避免全局刷屏;
  • 加时间限制防历史堆积:journalctl --since "10 minutes ago" -p err -f

调整 rsyslog 或应用日志级别

若刷屏来自 rsyslog 管理的日志(如 /var/log/messages):

  • 编辑 /etc/rsyslog.conf/etc/rsyslog.d/*.conf,找到对应 facility 的规则行,例如:
    *.* /var/log/messages → 改为 *.warning /var/log/messages(只记录 warning 及以上);
  • 重启生效:sudo systemctl restart rsyslog
  • 对自研 C++/Python 应用,检查是否启用了 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 }
免责声明:转载请注明出处:http://jing-feng.com.cn/news/74219.html

扫一扫高效沟通

多一份参考总有益处

免费领取网站策划SEO优化策划方案

请填写下方表单,我们会尽快与您联系
感谢您的咨询,我们会尽快给您回复!