我已经成功过滤了我的日志,但好奇我是否可以提高效率或者更好"方式而不是使用大量的" NOTSPACE"。下面是我的示例日志以及我的grok过滤器。
****更新了更新版本******
[15/09/28@09:40:23.467-0700] P-000685 T-956770080 2 WS 4GLTRACE Run shr/getpref.p " Traveler ID Format" [Main Block - docprep/frames.w @ 1016]
我的grok过滤器:
%{YEAR}/%{MONTHNUM}/%{MONTHDAY}@%{HOUR}:%{MINUTE}:%{SECOND}-%{INT:TIMEZONE}%{NOTSPACE:BRACKET}%{SPACE}%{NOTSPACE:PID}%{SPACE}%{NOTSPACE:T}%{SPACE}%{INT:NUM}%{SPACE}%{NOTSPACE:WS}%{SPACE}%{NOTSPACE:4GLTRACE}%{SPACE}%{NOTSPACE:STATUS}%{SPACE}%{NOTSPACE:MAINPROGRAM}%{GREEDYDATA:SUBPROGRAM}%{SPACE}%{NOTSPACE:BRACKET}
任何提示都将不胜感激!
答案 0 :(得分:0)
你可以在你的模式中使用括号,但你必须逃避开头,所以:
\[ .... ]
可以在您的日期/时间周围使用。
此外,您可以使用%{TIME}而不是三种单独的模式。
你的几个%{NOTSPACE}可能是%{WORD},当你重新访问grok {}时,这几个月可能更有意义。 %{WORD}是\ b \ w + \ b,包括字母数字字符和下划线。
当您知道只有一个文字空间时,您可以使用文字空间:
%{WORD} %{WORD}
这也将提高可读性。
我也尝试将GREEDYDATA保留为“最后的额外内容”。查看%{QS}以获取引用的字符串。