双 space 的 Grok 调试问题

Grok debugging issue with double space

我有以下使用 log4net 生成的日志

2017-12-11 17:01:28,390 [6] INFO  DAL.DBManager "FunctionName":"Dispose" 

问题出在 INFO 之后的 2 space 秒。如果这个词是debug,它似乎只有1个space,所以它可能是"tab".

我正在使用 http://grokdebug.herokuapp.com/,但我下面的模式似乎不起作用。

%{TIMESTAMP_ISO8601} \[%{NUMBER:thread}\] %{LOGLEVEL:log-level} %{DATA:CLASS} %{DATA:Function} %{DATA:FunctionName} %{GREEDYDATA:remainder}

我试过添加 %{SPACE} 而不是 space 但它没有生成任何东西。

如果您想要恰好匹配两个空格,您还必须在您的模式中添加两个空格。以下模式似乎与您写的行匹配:

%{TIMESTAMP_ISO8601} \[%{NUMBER:thread}\] %{LOGLEVEL:log-level}  %{DATA:CLASS}\.%{DATA:Function} %{DATA:FunctionName}\:%{GREEDYDATA:remainder}

如果您想匹配一个或两个空格,您可以使用一个空格和一个可选的空格 ( )?,如下所示:

%{TIMESTAMP_ISO8601} \[%{NUMBER:thread}\] %{LOGLEVEL:log-level} ( )?%{DATA:CLASS}\.%{DATA:Function} %{DATA:FunctionName}\:%{GREEDYDATA:remainder}