Logback配置 - 如何包含Spring Application Version

时间:2017-02-05 07:51:30

标签: spring spring-boot logback

出于分析目的,我想在所有日志条目中记录应用程序版本(理想情况下,我希望通过编辑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>
  

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

4 个答案:

答案 0 :(得分:3)

根据documentation

对于 Maven ,您可以使用资源过滤自动从Maven项目中展开属性。如果您使用 spring-boot-starter-parent ,则可以通过@ .. @ placeholders

引用您的Maven'项目属性'

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

app.project.version=@project.version@

对于 Gradle ,您需要通过配置Java插件的processResources

从Gradle项目中展开属性
processResources {
    filesMatching('application.properties') {
        expand(project.properties)
    }    
}

可以通过占位符访问。

app.name=${name}
app.description=${description}
app.version=${version}

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

由于

答案 1 :(得分:1)

如果您已设法指示Gradle在清单文件中设置version,那么您可以尝试指示gradle替换${version}

中的logback.xml

我不知道Gradle,但Maven,所以在Maven中:它被称为过滤资源,我认为它在Gradle中完全相同:https://dzone.com/articles/resource-filtering-gradle

答案 2 :(得分:0)

您可以尝试<%= version%>从application.property中的gradle版本进行。

例如,您在application.property中拥有属性version

version=<%=version%>

然后,源可能是logback配置中的'version'

答案 3 :(得分:0)

  1. 在pom.xml中添加了git-commit-id-plugin插件。这样会在构建目录中创建git.properties,并用META-INF更新build-info.properties

    <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <version>4.0.0</version>
        <executions>
            <execution>
                <id>get-the-git-infos</id>
                <goals>
                    <goal>revision</goal>
                </goals>
                <phase>initialize</phase>
            </execution>
            <execution>
                <id>validate-the-git-infos</id>
                <goals>
                    <goal>validateRevision</goal>
                </goals>
                <phase>package</phase>
            </execution>
        </executions>
        <configuration>
            <failOnNoGitDirectory>false</failOnNoGitDirectory>
            <generateGitPropertiesFile>true</generateGitPropertiesFile>
            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
        </configuration>
    </plugin>
    
  2. MEATA-INF/build-info.properties添加为logback.xml中的资源,并使用变量${build.version}来记录版本。

    <property resource="META-INF/build-info.properties" />
    <property name="LOG_PATTERN" value="%level{length=1} %d{yyyy-MM-dd HH:mm:ss.SSS} | buildNumber=${build.version} | UserAgent = %X{User-Agent} | thread=%t | class=%c-%L | message=%msg%n" />