Logback 配置——如何包含 Spring 应用程序版本
Logback config -- how to include Spring Application Version
出于分析目的,我想在所有日志条目中记录应用程序版本(理想情况下,我想通过编辑 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>
Starting Application v1.0.0-SNAPSHOT with PID 14147
如果您已经设法指示 Gradle 在清单文件中设置 version
,那么您可以尝试指示 gradle 替换您的 logback.xml
我不知道Gradle,但是Maven,所以在Maven中:它被称为过滤资源,我认为它在Gradle中是完全相同的:https://dzone.com/articles/resource-filtering-gradle
对于 Maven,您可以使用 资源过滤 从 Maven 项目自动扩展属性。如果你使用 spring-boot-starter-parent 然后你可以通过 @..@ 占位符
引用你的 Maven ‘project properties’
您可以在 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
谢谢
您可以尝试从 gradle 到 application.property 中的 <%=version%> 版本。
例如,您在 application.property
中有一个 属性 version
version=<%=version%>
那么源可以是 'version'
在 logback 配置中。
在 pom.xml 中添加了 git-commit-id-plugin
插件。这会在构建目录中创建 git.properties
并使用 build-info.properties
.
更新 META-INF
<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>
在 logback.xml 中添加了 MEATA-INF/build-info.properties
作为资源,并使用变量 ${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" />
出于分析目的,我想在所有日志条目中记录应用程序版本(理想情况下,我想通过编辑 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>
Starting Application v1.0.0-SNAPSHOT with PID 14147
如果您已经设法指示 Gradle 在清单文件中设置 version
,那么您可以尝试指示 gradle 替换您的 logback.xml
我不知道Gradle,但是Maven,所以在Maven中:它被称为过滤资源,我认为它在Gradle中是完全相同的:https://dzone.com/articles/resource-filtering-gradle
对于 Maven,您可以使用 资源过滤 从 Maven 项目自动扩展属性。如果你使用 spring-boot-starter-parent 然后你可以通过 @..@ 占位符
引用你的 Maven ‘project properties’您可以在 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
谢谢
您可以尝试从 gradle 到 application.property 中的 <%=version%> 版本。
例如,您在 application.property
中有一个 属性version
version=<%=version%>
那么源可以是 'version'
在 logback 配置中。
在 pom.xml 中添加了
更新git-commit-id-plugin
插件。这会在构建目录中创建git.properties
并使用build-info.properties
.META-INF
<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>
在 logback.xml 中添加了
MEATA-INF/build-info.properties
作为资源,并使用变量${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" />