如何在Spring Boot中使用Log4J2复合配置

我正在通过以下POM将Spring Boot" title="Spring Boot">Spring Boot 2.0.1入门版与log4j2一起使用。WAR文件托管在Tomcat

8中(而不是使用嵌入式tomcat)。应用程序日志将写入控制台,而不是写入日志文件。显然,Spring Boot的XML配置将覆盖应用程序中配置的XML。

POM:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-logging</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-log4j2</artifactId>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-web</artifactId>

</dependency>

Log4j2使用复合配置,其中配置分为2个xml文件:log4j2-base.xmllog4j2-env.xml

资源目录包含log4j2.component.properties以下内容:

log4j.configurationFile=log4j2-base.xml,log4j2-env.xml

资源目录还包含log4j2-base.xml。文件log4j2-env.xml是特定于环境的JAR文件的一部分,该文件已放置在类路径中。

日志:

DEBUG StatusLogger Configuration XmlConfiguration[location=jar:file:/usr/mware/jwsAppDetails/app1/webapps/myProject/WEB-INF/lib/spring-boot-2.0.1.RELEASE.jar!/org/springframework/boot/logging/log4j2/log4j2.xml] initialized

DEBUG StatusLogger Starting configuration XmlConfiguration[location=jar:file:/usr/mware/jwsAppDetails/app1/webapps/myProject/WEB-INF/lib/spring-boot-2.0.1.RELEASE.jar!/org/springframework/boot/logging/log4j2/log4j2.xml]

DEBUG StatusLogger Started configuration XmlConfiguration[location=jar:file:/usr/mware/jwsAppDetails/app1/webapps/myProject/WEB-INF/lib/spring-boot-2.0.1.RELEASE.jar!/org/springframework/boot/logging/log4j2/log4j2.xml] OK.

TRACE StatusLogger Stopping org.apache.logging.log4j.core.config.composite.CompositeConfiguration@40575bb9 [configurations=[XmlConfiguration[location=/usr/mware/jwsAppDetails/app1/webapps/myProject/WEB-INF/classes/log4j2-base.xml], XmlConfiguration[location=jar:file:/usr/mware/jwsAppDetails/app1/lib/myProject.jar!/log4j2-env.xml]], mergeStrategy=org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy@583fc0cb, rootNode=null, listeners=[], pluginPackages=[], pluginManager=org.apache.logging.log4j.core.config.plugins.util.PluginManager@278307b, isShutdownHookEnabled=true, shutdownTimeoutMillis=0, scriptManager=org.apache.logging.log4j.core.script.ScriptManager@185463aa]...

TRACE StatusLogger CompositeConfiguration notified 8 ReliabilityStrategies that config will be stopped.

TRACE StatusLogger CompositeConfiguration stopping 7 LoggerConfigs.

TRACE StatusLogger CompositeConfiguration stopping root LoggerConfig.

TRACE StatusLogger CompositeConfiguration notifying ReliabilityStrategies that appenders will be stopped.

TRACE StatusLogger CompositeConfiguration stopping remaining Appenders.

DEBUG StatusLogger Shutting down RollingFileManager null

DEBUG StatusLogger Shutting down RollingFileManager {}null

DEBUG StatusLogger All asynchronous threads have terminated

DEBUG StatusLogger RollingFileManager shutdown completed with status true

DEBUG StatusLogger Shut down RollingFileManager null, all resources released: true

DEBUG StatusLogger Appender RollingFile stopped with status true

TRACE StatusLogger CompositeConfiguration stopped 1 remaining Appenders.

TRACE StatusLogger CompositeConfiguration cleaning Appenders from 8 LoggerConfigs.

DEBUG StatusLogger Stopped org.apache.logging.log4j.core.config.composite.CompositeConfiguration@40575bb9 [configurations=[XmlConfiguration[location=/usr/mware/jwsAppDetails/app1/webapps/myProject/WEB-INF/classes/log4j2-base.xml], XmlConfiguration[location=jar:file:/usr/mware/jwsAppDetails/app1/lib/myProject.jar!/log4j2-env.xml]], mergeStrategy=org.apache.logging.log4j.core.config.composite.DefaultMergeStrategy@583fc0cb, rootNode=null, listeners=[], pluginPackages=[], pluginManager=org.apache.logging.log4j.core.config.plugins.util.PluginManager@278307b, isShutdownHookEnabled=true, shutdownTimeoutMillis=0, scriptManager=org.apache.logging.log4j.core.script.ScriptManager@185463aa] OK

TRACE StatusLogger Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@77aa3299

TRACE StatusLogger Reregistering context (1/1): '2190fd23' org.apache.logging.log4j.core.LoggerContext@64150381

回答:

我们尝试了以下方法,并且有效:

  1. 将文件log4j-base.xml重命名为log4j2.xml
  2. 在log4j2.component.properties中,将log4j-base.xml重命名为log4j2.xml,如下所示:

log4j.configurationFile = log4j2.xml,log4j2-env.xml

以上是 如何在Spring Boot中使用Log4J2复合配置 的全部内容, 来源链接: utcz.com/qa/420133.html

回到顶部