背景:因为从了,支持的格式有json和xml两种格式,此次实践主要使用的是xml的格式定义日志说明。
1。首先把spring-boot-starter-web以及spring-boot-starter包下面的spring-boot-starter-logging排除,然后引入spring-boot-starter-log4j2包。
& lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-web & lt; exclusions> & lt; exclusion> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-logging & lt;/exclusion> & lt;/exclusions> & lt;/dependency> & lt; !——https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2--> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-log4j2 & lt; version> 1.5.8.RELEASE & lt;/dependency> >之前2. pom中设置文件资源位置,以便通过pom中属性的修改文件中的变量。
& lt; finalName> $ {project.name} & lt;/finalName> & lt; sourceDirectory> src/main/java & lt; testSourceDirectory> src/测试/java & lt; resources> & lt; resource> & lt; directory> src/main/resources & lt; filtering> true & lt; includes> & lt; include> * */* & lt;/include> & lt;/includes> & lt;/resource> & lt;/resources> >之前
设置变量替换属性
& lt; properties> & lt; project.build.sourceEncoding> UTF-8 & lt; project.reporting.outputEncoding> UTF-8 & lt; java.version> 1.8 & lt;/java.version> & lt; log4j2.level> debug & lt; log4j2.root.path>/opt/appstack/apache tomcat/日志/$ {project.name} & lt;/log4j2.root.path> & lt; log4j2.error.path>/opt/appstack/apache tomcat/logs/$ {project.name} -error & lt; log4j2.package.path>/opt/appstack/apache tomcat/logs/$ {project.name} -kk & lt;/properties>
3。因为弹簧引导对配置文件yml或者属性有保护作用,因此pom中的变量需要添加一个插件才能够替换配置文件中的变量。
& lt; pluginManagement> & lt; plugins> & lt; plugin> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-maven-plugin & lt;/plugin> & lt; !——spring-boot为了保护application.yml和application.properties,修改了默认的占位符${…}为@,@——比; & lt; !——为春天了引导的yml和属性文件能够使用maven变量替换,使用${}占位符——比; & lt; plugin> & lt; artifactId> maven-resources-plugin & lt; configuration> & lt; encoding> utf-8 & lt; useDefaultDelimiters> true & lt;/configuration> & lt;/plugin> & lt;/plugins> & lt;/pluginManagement>
4。本示例采用的是弹簧引导的yml配置,在application.yml中配置log4j2的配置文件
日志:
配置类路径:log4j2。xml
如果想对不同环境配置不同的log4j2的配置文件,可以在相应的application.yml中设置配置值
5。配置log4j2.xml的配置文件
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt;配置状态=熬妗北? & lt; !——全局参数——比; & lt; Properties> & lt;属性名=澳J健痹? d {yyyy-MM-dd HH: mm: ss,瑞士}% 5 p % c {1}: % L - % m % n & lt;/Properties> & lt; Loggers> & lt;根水平=暗魇浴北? & lt; AppenderRef ref=翱刂铺ā弊4? lt;/AppenderRef> & lt; AppenderRef ref=" rolling_file "祝辞& lt;/AppenderRef> & lt;/Root> & lt; !——只将com.kk.springboot.demo写到文件——比; & lt;记录器name=" com.kk.springboot.demo水平=" $ {log4j2.level} "比; & lt; AppenderRef ref="文件"祝辞& lt;/AppenderRef> & lt;/Logger> & lt;/Loggers> & lt; Appenders> & lt;控制台name=翱刂铺ā蹦勘?癝YSTEM_OUT”遵循=" true "比; & lt; !——控制台只输出水平及以上级别的信息——比; & lt; ThresholdFilter水平="信息"/比; & lt; PatternLayout> & lt; Pattern> ${模式}& lt;/Pattern> & lt;/PatternLayout> & lt;/Console> & lt; !——同一来源的Appender可以定义多个RollingFile,定义按天存储日志——比; & lt; RollingFile name=" rolling_file " 文件名=" $ {log4j2.root.path} . log” filePattern=" $ {log4j2.root.path} _ % d {yyyy-MM-dd} . log”比; & lt; ThresholdFilter水平="信息"/比; & lt; PatternLayout> & lt; Pattern> ${模式}& lt;/Pattern> & lt;/PatternLayout> & lt; Policies> & lt; TimeBasedTriggeringPolicy区间=" 1 "/比; & lt; !——& lt; SizeBasedTriggeringPolicy大?? KB/祝辞——比; & lt;/Policies> & lt;/RollingFile> & lt;文件名称="文件"文件名=" $ {log4j2.package.path} . log "比; & lt; !——, lt; !, mdash;控制台只输出水平及以上级别的信息(onMatch),其他的直接拒绝(onMismatch), mdash;和gt;——比; & lt; ThresholdFilter水平=暗魇浴?比; & lt; PatternLayout> & lt; Pattern> ${模式}& lt;/Pattern> & lt;/PatternLayout> & lt;/File> & lt;/Appenders> & lt;/configuration>弹簧引导自定义log4j2日志文件的实例讲解