JBoss server.log流式解析:tail -f模式下ERROR/WARN合并过滤失效问题
JBoss server.log 日志解析需求与场景问题
核心需求
- 收集server.log中所有ERROR、WARN级别的日志条目
- 同步识别Broken Pipe类关联异常文本
- 最终输出为单行结构,整合日志时间、错误类型、异常完整描述
离线场景可落地方案
离线全量处理时,使用如下管道命令可完美实现需求,自动过滤无效内容、合并相邻的错误行与堆栈行,输出符合格式的单行结果:cat server.log |grep 'ERROR\|WARN' -A1 |grep -v 'Timed out waiting for last message'|grep -v -- "^--$" |grep -v 'DEBUG'|sed 'N;s/\n/ /'
输出示例:
2021-03-16 15:26:57,128 ERROR [org.jboss.remoting.transport.socket.ServerThread] Worker thread initialization failure java.io.IOException: Broken pipe 2021-03-16 15:26:57,129 ERROR [org.jboss.remoting.transport.socket.ServerThread] Worker thread initialization failure java.io.IOException: Connection reset
实时流式场景的异常表现
将离线命令替换为实时跟踪日志的流式版本:tail -f server.log |grep 'ERROR\|WARN' -A1 |grep -v 'Timed out waiting for last message'|grep -v -- "^--$" |grep -v 'DEBUG'|sed 'N;s/\n/ /'
该命令无法达到预期效果,无法在流式逐行输出的场景下将相邻的日志行合并为包含完整时间、级别、异常文本的单行结果。
内容的提问来源于stack exchange,提问作者Oleksandr Kovov
相关产品推荐
相关产品推荐

