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

标签 java log4j

我有很多日志文件,并且有一些 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/

相关文章:

java - 请求所有帐户用户时出现 Google Directory API 403 Insufficient Permission 错误

java - Java 如何初始化 JAXB/JAX-WS/etc 实现?

java - BigInteger 家庭作业需要帮助

java - 如何在浏览器中自动化 Java applet

java - 使用 log4j 的多个日志文件

log4j - 在记录器 Log4j 中打印上下文根

java - 如何将对象作为参数传递给 onClick 上的 javascript 函数

java - 停止从依赖项向控制台显示记录器输出

java - 从具有预设名称的文件进行配置

Java log4j 返回一些警告