Причина в том, что после :]
есть новая строка, и вам нужно сопоставить символ \n
, чтобы проанализировать ее.Существуют различные способы сделать это, вы можете сопоставить новую строку, используя \n
символ, подобный этому,
\[%{TIMESTAMP_ISO8601:ServerTimestamp}\|%{WORD:Log4netHostname}\|%{DATA:ProjectName}\|%{DATA:TestName}\|%{DATA:UserName}\|%{DATA:ClientIP}\|%{DATA:ClientMachineName}\|%{LOGLEVEL:LogLevel}\|%{DATA:method}\|%{DATA:message}\|%{GREEDYDATA:Exception}\n%{GREEDYDATA:2ndLine}\n%{GREEDYDATA:3rdLine}\n%{GREEDYDATA:4thLine}
, который выдаст,
......
"Exception": [
[
"Framework Error in :]"
]
],
"2ndLine": [
[
"WebDriverTimeoutException: Timed out after 5 seconds"
]
],
"3rdLine": [
[
" at DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)"
]
],
"4thLine": [
[
" at DefaultWait`1.Until[TResult](Func`2 condition)"
]
]
ИЛИ,
используйте ?m
для сопоставления всех строк после первой строки в одном блоке, как это,
\[%{TIMESTAMP_ISO8601:ServerTimestamp}\|%{WORD:Log4netHostname}\|%{DATA:ProjectName}\|%{DATA:TestName}\|%{DATA:UserName}\|%{DATA:ClientIP}\|%{DATA:ClientMachineName}\|%{LOGLEVEL:LogLevel}\|%{DATA:method}\|%{DATA:message}\|%{GREEDYDATA:Exception}(?m)%{GREEDYDATA:everythingelse}
Вывод,
.....
],
"Exception": [
[
"Framework Error in :]"
]
],
"everythingelse": [
[
"\nWebDriverTimeoutException: Timed out after 5 seconds\n at DefaultWait`1.ThrowTimeoutException(String exceptionMessage, Exception lastException)\n at DefaultWait`1.Until[TResult](Func`2 condition)"
]
]
}