Spring boot 통합 log4j 2 프로 세 스 분석
이전에 log4j 2 를 통합 한 적 이 있 지만,오늘 재 통합 발견 은 모두 잊 어 버 렸 고,기록 도 하지 않 았 다.
1.pom.xml 중
(1)spring-boot-starter-web 패키지 아래 spring-boot-starter-logging 제거
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- slf4j-log4j12-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
설명:자체 로그 를 먼저 제거 하지 않 으 면 다음 과 같은 오류 가 발생 할 수 있 습 니 다.
SLF4J: Class path contains multiple SLF4J bindings.
(2)spring-boot-starter-log4j 2 패키지 도입
<!--log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2.log4j 2 프로필 추가src\main\resources 에 log4j 2-spring.xml 추가
<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration status, log4j2 , , trace , log4j2 -->
<!--monitorInterval:Log4j , -->
<configuration monitorInterval="5">
<!-- : OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- -->
<Properties>
<!-- :%date ,%thread ,%-5level: 5 %msg: ,%n -->
<!-- %logger{36} Logger 36 -->
<property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<!-- , -->
<property name="FILE_PATH" value="log" />
<property name="FILE_NAME" value="myLog.log" />
</Properties>
<appenders>
<console name="Console" target="SYSTEM_OUT">
<!-- -->
<PatternLayout pattern="${LOG_PATTERN}"/>
<!-- level (onMatch), (onMismatch)-->
<ThresholdFilter level="FATAL" onMatch="ACCEPT" onMismatch="DENY"/>
</console>
<!-- , log , append , -->
<File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">
<PatternLayout pattern="${LOG_PATTERN}"/>
</File>
<!-- info , size, size - , -->
<RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/info.log" filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
<!-- level (onMatch), (onMismatch)-->
<Filters>
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<!--interval , 1 hour-->
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<!-- DefaultRolloverStrategy , 7 -->
<DefaultRolloverStrategy max="15"/>
</RollingFile>
<!-- warn , size, size - , -->
<RollingFile name="RollingFileWarn" fileName="${FILE_PATH}/warn.log" filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
<!-- level (onMatch), (onMismatch)-->
<Filters>
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<!--interval , 1 hour-->
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<!-- DefaultRolloverStrategy , 7 -->
<DefaultRolloverStrategy max="15"/>
</RollingFile>
<!-- error , size, size - , -->
<RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log" filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
<!-- level (onMatch), (onMismatch)-->
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<!--interval , 1 hour-->
<TimeBasedTriggeringPolicy interval="1"/>
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<!-- DefaultRolloverStrategy , 7 -->
<DefaultRolloverStrategy max="15"/>
</RollingFile>
</appenders>
<!--Logger , class 。-->
<!-- loggers, logger appender,appender -->
<loggers>
<!-- -->
<!-- additivity false, Logger appender , Logger appender 。-->
<Logger name="org.springframework" level="info" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="Filelog"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>
</configuration>
자바 프로그램 코드 에서 log4j 2 로 그 를 사용 합 니 다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Logger logger = LoggerFactory.getLogger(WebMvcConfigurer.class);
logger.error("this is error test");
log.info("this is info test");
시작 하면 로그 디 렉 터 리 가 나타 납 니 다.src 와 같은 단계 에 있 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.