Logback 配置——如何包含 Spring 应用程序版本

vic*_*csz 2 spring logback spring-boot

出于分析目的,我想在所有日志条目中记录应用程序版本(理想情况下,我希望通过编辑 logback-spring.xml 文件而不是编写任何 Java 代码来做到这一点)。

我已经成功记录了 spring 应用程序名称。

请注意显示正确应用程序版本的示例启动日志消息。

根据我的成绩构建 - 我是否使用正确的实现版本更新清单文件。对于 Spring 构建执行器,我还设置了 info.build.version=${version}。

见下面的例子——我不知道该放什么???正确记录应用程序版本。我尝试了许多键,包括:info.build.version、application.version、spring.application.version 等..

 <springProperty name="APP_NAME" source="spring.application.name"/>

 <springProperty name="APP_VERSION" source="???"/>

 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
         <pattern> version=${APP_VERISON} site=${APP_NAME}  %msg%n </pattern>
     </encoder>
 </appender>
Run Code Online (Sandbox Code Playgroud)

使用 PID 14147 启动应用程序 v1.0.0-SNAPSHOT

Vip*_*nth 6

根据文档

对于Maven,您可以使用资源过滤从 Maven 项目中自动扩展属性。如果您使用spring-boot-starter-parent,则可以通过 @..@ 占位符引用您的 Maven '项目属性'

您可以在 application.properties 文件中添加 maven 项目属性,例如

app.project.version=@project.version@
Run Code Online (Sandbox Code Playgroud)

对于Gradle,您需要通过配置 Java 插件的 processResources扩展 Gradle 项目的属性

processResources {
    filesMatching('application.properties') {
        expand(project.properties)
    }    
}
Run Code Online (Sandbox Code Playgroud)

可以通过占位符访问。

app.name=${name}
app.description=${description}
app.version=${version}
Run Code Online (Sandbox Code Playgroud)

您可以使用这些属性添加到 logback.xml

谢谢