出于分析目的,我想在所有日志条目中记录应用程序版本(理想情况下,我希望通过编辑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
答案 0 :(得分:3)
对于 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)
在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>
将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" />