作為 log4j2 漏洞的一部分,我們正在遷移到 log4j2.xml。但是新創建的 log4j2 在應用程式啟動期間沒有被拾取。我已經執行了以下所有選項,但徒勞無功。
嘗試的選項:
- 嘗試添加和洗掉 log4j-jcl 依賴項。
- 洗掉了 spring-boot-starter-logging 依賴項。
- 嘗試使用 log4j2.properties 而不是 log4j2.xml。
- 在 application.properties 中添加了 logging.config 屬性。
- 嘗試重命名 RollingFile 名稱并故意提供不正確的 AppenderRef ref 以檢查任何與 bean 相關的例外。但應用程式已成功啟動。這意味著這個 log4j2.xml 和 log4j2.properties 檔案沒有被拾取。
這是我的專案的詳細資訊。如果需要任何其他資訊,請告知。
log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorinterval="30" status="info" strict="true">
<Properties>
<Property name="logPath">${sys:app.config.home}/logs</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
<PatternLayout>
<pattern>TYPE=%level, DATE_TIME=%d, CLASS_NAME=%C, METHOD_NAME=%M, %msg%n</pattern>
</PatternLayout>
</Console>
<RollingFile name="RollingFile" fileName="${logPath}/batch.log" filePattern="${logPath}/batch-%d{MM-dd-yyyy}-part%i.log.gz">
<PatternLayout>
<pattern>TYPE=%level, DATE_TIME=%d, CLASS_NAME=%C, METHOD_NAME=%M, %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="200 MB"/>
</Policies>
<DefaultRolloverStrategy max="60"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info" additivity="true" includeLocation="true">
<AppenderRef ref="RollingFile" />
<AppenderRef ref="ConsoleAppender" />
</Root>
</Loggers>
</Configuration>
pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.proj.ds</groupId>
<artifactId>ProcessorBatch</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>ProcessorBatch</name>
<description>ProcessorBatch project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>
<repositories>
<repository>
<id>MDM</id>
<url>https://devnexus.tent.trt.proj.pri:8443/nexus/content/groups/public</url>
<name>Proj Repo</name>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-infrastructure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-jdk8</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
</project>
應用程式背景關系.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<import resource="classpath:context/persistance-context.xml" />
<import resource="classpath:context/memory-jobrepository.xml" />
<context:component-scan base-package="com.proj.ds" />
<util:properties id="configProperties" location="file:${app.config.home}/config/batchConfig.properties" />
<context:property-placeholder location="file:${app.config.home}/config/batchConfig.properties" />
<bean id="processorTasklet" class="com.proj.ds.mdm.processor.batch.tasklet.ProcessorTasklet">
<property name="batchDao" ref="batchDao" />
<property name="processorService" ref="processorService" />
<property name="threadCount" value="${batch.threadcount}" />
</bean>
<bean id="batchDao" class="com.proj.ds.mdm.processor.batch.dao.BatchDAOImpl">
<property name="metaBatchMapper" ref="metaBatchMapper" />
<property name="hubBatchMapper" ref="hubBatchMapper" />
</bean>
<bean id="processorService" class="com.proj.ds.mdm.processor.batch.service.ProcessorServiceImpl">
<property name="projCompositeService" ref="projCompositeService" />
<property name="endPointUrl" value="${mdm.endpoint}" />
</bean>
<bean id="projCompositeService" class="com.proj.mdm.projcomposite.port.projCompositeService">
<property name="handlerResolver" ref="handlerResolver" />
</bean>
<bean id="handlerResolver" class="com.proj.ds.mdm.processor.batch.service.HeaderHandlerResolver"/>
<bean id="batchUtil" class="com.proj.ds.mdm.processor.batch.util.BatchUtil">
<property name="configProperties" ref="configProperties" />
</bean>
</beans>
uj5u.com熱心網友回復:
XML 組態檔應該放在 src/main/resources 檔案夾下。
uj5u.com熱心網友回復:
您的 Spring Boot 專案繼承自 Spring Boot Starter 父專案,該專案依賴于 SLF4J 和 logback。您可以將您的專案遷移到 logback,或者您應該洗掉 logback 依賴項。
要洗掉 logback 依賴項,請嘗試更新您的 POM 檔案:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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>
uj5u.com熱心網友回復:
此外,由于 Spring Boot Starter 集成了 Logback,請考慮從 log4j 遷移到 Logback。https://logback.qos.ch/manual/introduction.html。
Logback 是由 log4j 的創始人設計的。
這里有一個遷移工具:https : //www.slf4j.org/migrator.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405725.html
標籤:
上一篇:FullyQualifiedAnnotationBeanNameGenerator不存在于最新的spring-context
