You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Winston过滤重复日志?

过滤连续重复日志的方法

你的需求是去除日志中连续重复的条目,保留每个连续唯一行的首次出现,以下是几种实用的处理方式:

1. 使用uniq命令(最简方案)

uniq是Linux/Unix系统自带的工具,专门处理连续重复行:

# 过滤日志并输出到新文件
uniq your_log_file.log > filtered_log.log

# 如果需要直接覆盖原文件(谨慎操作)
uniq your_log_file.log > temp.log && mv temp.log your_log_file.log

注意:uniq仅处理连续重复的行,非连续的重复行不会被过滤,完全匹配你的场景。

2. 使用awk脚本(支持自定义逻辑)

如果需要忽略行尾空格(比如你示例中log 2后的空格),可以用awk处理:

# 过滤连续重复行,忽略行尾空格
awk '{gsub(/[[:space:]]+$/, ""); if ($0 != prev) {print; prev=$0}}' your_log_file.log > filtered_log.log

# 若不需要忽略空格,直接判断整行
awk '$0 != prev {print; prev=$0}' your_log_file.log > filtered_log.log

3. 实时过滤新增日志

如果要实时监控并过滤正在生成的日志,结合tail和过滤工具:

# 实时跟踪并过滤连续重复行
tail -f your_log_file.log | uniq

# 用awk实时处理(支持忽略空格)
tail -f your_log_file.log | awk '{gsub(/[[:space:]]+$/, ""); if ($0 != prev) {print; prev=$0}}'

内容的提问来源于stack exchange,提问作者Nikolai Kushpela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:05:02