在 Java 中,如何在日志文件中包含动态版本信息?

Iai*_*ain 5 java logging manifest

我可以使用自定义日志记录框架从 Java 应用程序记录字符串,如下所示:

logger.info("Version 1.2 of the application is currently running");
Run Code Online (Sandbox Code Playgroud)

因此,当用户向我发送日志文件时,我可以轻松查看他们正在运行的应用程序的版本。

上面代码的问题在于版本是硬编码在字符串文字中的,需要有人记住为每个版本更新它。在发布时忘记更新此字符串是相当不可避免的。

我想要做的是根据应用程序 JAR 的清单文件中的版本号之一自动更新此字符串文字:

Specification-Version: 1.2
Implementation-Version: 1.2.0.0
Run Code Online (Sandbox Code Playgroud)

我不介意这种情况发生在编译时还是运行时,只要版本号进入日志文件即可。

Joa*_*uer 6

获取该信息的标准方法是。SomeClass.class.getPackage().getImplementationVersion()

您无需自行进行任何解析。