我有很多日志文件,并且有一些 log4j 配置(用于文件附加程序的不同 ConversionPattern
格式)。
我想编写一个脚本/测试,它能够通过用于写入文件的ConversionPattern
对日志文件进行分组。我缺少的是如何实现类似的东西:
boolean logToPatternMatcher.matches(String conversionPattern, String logFileEntry)
Log4j API 可以吗?
对于给定的情况,上述方法应返回 true:
字符串 conversionPattern = "%d{ISO8601} %-5p [%-16.16t][%c] %m%n"
String logFileEntry = "2015-02-12 00:02:38,023 警告 [pool-58-thread-1][some.package.name.ConvertingPublisher] 文档 [类型:app.MessageProcessed,id:1063_1_20150128072222800] 重复。"
最佳答案
GROK 非常适合您的用例。我最近一直在将它与logstash一起使用,但是github上有一个java-grok项目你可以尝试。我发现这个链接来自 another stackoverflow answer .
GROK 本质上是一个正则表达式引擎。它有一堆预定义的正则表达式,可以匹配最常见的日志记录条目,如时间戳、日志级别等。如果这对您不起作用,您是否考虑过使用直接正则表达式?
关于java - 如何检查日志条目是否是使用给定的 ConversionPattern 写入的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28482881/