检查一个字符串而不是其他字符串的 Splunk 日志

Checking Splunk logs for one string but not others

在 Splunk 中,我想搜索除并发超时异常之外的任何异常。并发超时异常在日志中显示为 "java.util.concurrent.TimeoutException" 或 "concurrent timeout exception"。 如果我执行如下查询:

("*exception*" AND (NOT "java.util.concurrent.TimeoutException"))

Splunk 会发现所有不包含 "java.util.concurrent.TimeoutException" 的异常(包括包含 "concurrent timeout exception" 的异常)。但是,我不知道如何同时消除 "java.util.concurrent.TimeoutException" 和 "concurrent timeout exception"。当我尝试时,它似乎消除了所有异常,而不仅仅是包含上述两个字符串的异常。

我尝试过类似的东西:

("*exception*" AND NOT ("java.util.concurrent.TimeoutException" OR "concurrent timeout exception"))

认为它会找到所有异常,但不会找到两个不需要的字符串。如果它们中的任何一个评估为真,那么该语句将为真,因此我们会找到所有异常,其中!该语句为真。

没用。我尝试了其他各种组合只是玩弄它无济于事:

("exception" AND (NOT "java.util.concurrent.TimeoutException" OR NOT "concurrent timeout exception"))

谁能在这里指出我正确的方向或指出我做错了什么?谢谢。

@JerryJeremiah 的建议应该有效。按照您的查询格式写出,它看起来像这样:

("*exception*" AND (NOT "java.util.concurrent.TimeoutException") AND (NOT "concurrent timeout exception"))

或者,为了便于阅读:

("*exception*" AND
    (NOT "java.util.concurrent.TimeoutException") AND
    (NOT "concurrent timeout exception")
)