我正在研究通过Maven制作的Java Spring Boot应用程序。
假设我的pom.xml的版本为2.1.205。
我希望将其放入slf4j MDC中,以便在打印每个日志时,都应该打印我当前版本的版本。
答案 0 :(得分:0)
首先,请确保生成一个带有属性文件的jar,其中显示了版本号,如this answer所示。
然后,在 Use MDC (Mapping Diagnostic Context) in your log 中的“ Moulin Raphaël”之后,在src/main/resources/log4j2.xml
<PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{%X}{faint} %clr{:}{faint} %m%n%xwEx"> </PatternLayout>
如果Log4j消息格式定义中使用了
%X
掩码,则此映射将显示在日志中。
我们的src/main/resources/log4j2.xml
文件中就是这种情况。
编写一个CommandLineRunner,它将正确的值输入到日志记录器中。
package com.yourapp.mdc;
...
import org.slf4j.MDC;
@Component
public class Execute implements CommandLineRunner {
...
public void run(String... args) {
MDC.put("Version", "Version as read from properties file");
log.info("Test Log4j with MDC");
}
}
您可以在以下地方使用该记录器:
private static final Logger log = LoggerFactory.getLogger(Example.class);