[SPRING] Log4j2를 이용한 Spring의 로깅
SPRINGLog4j2를 이용한 Spring의 로깅
Log4j2를 사용하여 Spring 로그를 파일 및 콘솔로 인쇄하려고합니다. 내 Log4j2 구성에 문제가있는 것 같습니다. 나는 그것을 작동시킬 수 없었다. 내 log4j2.xml 파일에이 구성이 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="defaultConfiguration" status="warn" strict="true" monitorInterval="5">
<properties>
<property name="patternlayout">%d{ISO8601} [%t] %-5level %logger{36} - %msg%n%throwable{full}</property>
<property name="filename">${env:MY_ROOT}/logs/mylog.log</property>
<property name="filenamePattern">${env:MY_ROOT}/logs/mylog-%d{yyyy-dd-MM}-%i.log.gz</property>
</properties>
<appenders>
<appender name="Console" type="Console" target="SYSTEM_OUT">
<layout type="PatternLayout" pattern="${patternlayout}" />
</appender>
<appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" bufferedIO="true" immediateFlush="true"
append="true">
<layout type="PatternLayout" pattern="${patternlayout}" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB" />
</Policies>
<DefaultRolloverStrategy max="30" />
</appender>
<appender name="AsynchFile" type="asynch" blocking="true" bufferSize="128">
<appender-ref ref="File" />
</appender>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="Console" />
<appender-ref ref="AsynchFile" />
</root>
<logger name="org.springframework.beans">
<appender-ref ref="Console" />
<appender-ref ref="AsynchFile" />
</logger>
</loggers>
</configuration>
이들은 내가 pom 파일에 가지고있는 의존성이다 : (아마 그들 중 일부는 필요하지 않다)
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.0-beta5</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.0.0.beta3</version>
</dependency>
자바 코드에서 봄과 관련된 일은하지 않습니다. 내 봄 구성을 읽고 콩을로드 아파치 카멜에서 메인 클래스를 사용하고 있습니다.
내가 뭘 잘못하고 있죠? 감사!
편집 : 모든 출력 (콘솔 또는 파일)에서 스프링 로그가 표시되지 않습니다. 그러나, 나는 내 자바 코드에서 만드는 로그를 얻을 수있다. 이 설명이 도움이되기를 바랍니다.
해결법
-
==============================
1.pom의 종속성을 보면 slf4j-log4j12가 있습니다. 이로 인해 slf4j API에 대한 로그 문이 Log4j-1.2 구현으로 라우팅됩니다. 아마도 Log4j-2.0 구현물로 보내주기를 원할 것입니다. slf4j-log4j12를 log4j-slf4j-impl으로 대체하고 다시 시도 할 수 있습니까?
pom의 종속성을 보면 slf4j-log4j12가 있습니다. 이로 인해 slf4j API에 대한 로그 문이 Log4j-1.2 구현으로 라우팅됩니다. 아마도 Log4j-2.0 구현물로 보내주기를 원할 것입니다. slf4j-log4j12를 log4j-slf4j-impl으로 대체하고 다시 시도 할 수 있습니까?
-
==============================
2.이 문제는 스프링 사용 common-logging 1.X 때문에 발생합니다. 따라서이 로깅을 Log4j 2로 라우팅하려면 pom.xml에 종속성을 추가해야합니다
이 문제는 스프링 사용 common-logging 1.X 때문에 발생합니다. 따라서이 로깅을 Log4j 2로 라우팅하려면 pom.xml에 종속성을 추가해야합니다
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>2.1</version> </dependency>
공통 로깅 1.X 종속성을 제거하지 마십시오.
from https://stackoverflow.com/questions/16341020/logging-spring-using-log4j2 by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트 애플리케이션은 org.springframework.boot 패키지를 해석 할 수 없다. (0) | 2019.03.19 |
---|---|
[SPRING] Maven 및 Spring 부트 - 해결할 수없는 부모 pom-repo.spring.io (알 수없는 호스트) (0) | 2019.03.19 |
[SPRING] 봄 보안으로 로그인 한 모든 사용자를 어떻게 로그 아웃합니까? (0) | 2019.03.19 |
[SPRING] XML없이 Spring을 사용하여 속성을 기반으로 런타임에 여러 서비스를 주입하는 방법 (0) | 2019.03.19 |
[SPRING] 스프링 XML 설정 파일 내에서 문자열을 연결 하시겠습니까? (0) | 2019.03.19 |