如何检查日志条目是否使用给定的ConversionPattern编写?

时间:2015-02-12 16:38:30

标签: java log4j

我有很多日志文件,我有一些log4j配置(文件追加器的格式不同ConversionPattern)。

我想编写一个脚本/测试,它能够通过用于编写文件的ConversionPattern对日志文件进行分组。我缺少的是如何实现类似的东西:

boolean logToPatternMatcher.matches(String conversionPattern, String logFileEntry)

是否可以使用Log4j API?

对于给定的:

,上述方法应该返回true

String conversionPattern = "%d{ISO8601} %-5p [%-16.16t][%c] %m%n"

String logFileEntry = "2015-02-12 00:02:38,023 WARN [pool-58-thread-1][some.package.name.ConvertingPublisher] Document [type: app.MessageProcessed, id: 1063_1_20150128072222800] DUPLICATED."

1 个答案:

答案 0 :(得分:0)

GROK非常适合您的用例。我最近一直在使用它与logstash,但你可以尝试在github上有一个java-grok项目。我找到了这个链接 another stackoverflow answer

GROK本质上是一个正则表达式引擎。它有一堆预定义的正则表达式,可以匹配大多数常见的日志记录条目,例如时间戳,日志记录级别等。如果这样做没有用,你是否考虑过使用直接正则表达式?