如何找到我正在使用的Log4J版本?

时间:2016-05-25 13:26:43

标签: java log4j

标题说明了一切。众所周知,至少4或5个log4j罐子最终都在类路径中。我怎么知道我正在使用哪个版本?

4 个答案:

答案 0 :(得分:4)

它取决于ClassLoader,但看看example,你可以在getImplementationVersion类的log4j上调用方法Layout

org.apache.log4j.Layout.class.getPackage().getImplementationVersion()

答案 1 :(得分:1)

一种简单的方法:

  1. 在log.debug()
  2. 上放置一个调试断点
  3. 步骤'进入'下一个语句,用于确定被调用的类。
  4. 检查被叫类的jar版本。

答案 2 :(得分:0)

删除您不需要的所有版本的jar(一个应该足够)并找出剩下的那个版本的文件名。 例如:

$commit

答案 3 :(得分:0)

我不希望这是首选方法,但这是我确定软件使用的Log4j版本的方法:

使用.zip归档实用程序打开或提取Log4j .jar的内容(Windows资源管理器支持此功能)。导航到“ META-INF ”子目录,然后在文本编辑器中打开文件“ MANIFEST.MF ”。找到以“ Implementation-Version ”开头的行,这是Log4j版本。

显然,这不是编程解决方案。但是,如果您只是想知道您使用的是哪个版本,并且拥有.jar存档,那么它将起作用。

编辑:我注意到Loic M.'s answer中提到的Package.getSpecificationVersion()Package.getImplementationVersion()适用于其他.jar库,但不适用于我的Log4j。我使用的版本可能不支持。

编辑:我下载了2.13.1版,以尝试上述方法并发现它们可以使用。因此,是我的版本(1.2.16)不支持它们,并返回了null