答案:通过脚本预处理实现按错误级别分离日志。利用grep提取ERROR和WARN级别日志到独立文件,logrotate按配置每日轮转并压缩,关键日志保留14天,结合postrotate执行分离脚本,确保日志高效管理与排查。

在Linux系统中,日志文件会随着时间不断增长,影响系统性能和排查问题的效率。logrotate 是 Linux 下用于自动轮转、压缩和清理日志的标准工具。虽然 logrotate 本身不能直接按“错误级别”(如 ERROR、WARN)切割日志,但可以通过结合脚本过滤日志内容,实现按错误级别分离日志并进行轮转。
logrotate 基本原理
logrotate 通过配置文件定义日志的轮转策略,比如轮转周期、保留份数、是否压缩等。默认配置位于 /etc/logrotate.conf,而具体服务的配置通常放在 /etc/logrotate.d/ 目录下。
按错误级别切割日志的思路
由于 logrotate 不解析日志内容,无法直接按 ERROR、WARN 等级别分离。但可以借助外部脚本,在轮转前将原始日志按级别拆分出多个文件,再由 logrotate 分别处理这些文件。
示例场景:
假设应用日志位于 /var/log/app.log,格式包含日志级别,例如:
2025-04-05 10:00:00 ERROR User login failed
2025-04-05 10:01:00 WARN Disk usage high
我们希望分离出:/var/log/app.error.log 和 /var/log/app.warn.log,并分别轮转。
配置实例:按错误级别切割并轮转
1. 编写日志分离脚本
创建脚本 /usr/local/bin/split_app_log.sh:
#!/bin/bashLOG_FILE="/var/log/app.log"ERROR_LOG="/var/log/app.error.log"WARN_LOG="/var/log/app.warn.log"提取 ERROR 级别日志追加到 error 文件
grep " ERROR " "$LOG_FILE" >> "$ERROR_LOG"
提取 WARN 级别日志追加到 warn 文件
grep " WARN " "$LOG_FILE" >> "$WARN_LOG"
清空原日志或备份后清空
> "$LOG_FILE"
赋予执行权限:
ViiTor实时翻译
AI实时多语言翻译专家!强大的语音识别、AR翻译功能。
116 查看详情
chmod +x /usr/local/bin/split_app_log.sh
2. 配置 logrotate 规则
创建配置文件 /etc/logrotate.d/app:
/var/log/app.log { daily missingok rotate 7 compress delaycompress notifempty postrotate /usr/local/bin/split_app_log.sh endscript}/var/log/app.error.log/var/log/app.warn.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 644 root root}
说明:
daily:每天轮转一次rotate 7:保留最近 7 个轮转文件postrotate … endscript:在轮转后执行脚本,分离日志内容app.error.log 和 app.warn.log 保留 14 天,因错误日志更关键create:确保分离出的日志文件权限正确
测试与验证
使用以下命令测试配置语法:
logrotate -d /etc/logrotate.d/app
-d 表示调试模式,不会真正执行。
强制执行一次轮转:
logrotate -f /etc/logrotate.d/app
检查 /var/log/app.error.log 和 /var/log/app.warn.log 是否生成对应内容。
基本上就这些。通过脚本预处理日志内容,再配合 logrotate 的轮转机制,就能实现按错误级别切割和管理日志。关键是分离逻辑要清晰,避免重复或遗漏日志条目。
以上就是Linux日志怎么切割_Linux日志使用logrotate按错误级别切割的配置实例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/612306.html
微信扫一扫
支付宝扫一扫