본문으로 바로가기

Log4j2 configuration - No log4j2 configuration file found

category 코딩/JAVA & JSP 2016. 9. 5. 15:35

에러

apache poi를 사용한 maven project 생성 후 컴파일 시 아래 에러 메시지 발생.

 

Error Message

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

 

해결 방법

dependancy 추가

pom.xml 파일에 아래와 같이 dependancy를 추가한다.

<project ...(생략)...
  <dependencies>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.9.1</version>
    </dependency>
  </dependencies>
</project>

이제 다시 실행해 보면 에러 메시지가 바뀌어 있다.

 

Error Message

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console

 

log4j2.xml 파일 추가

log4j2 설정 파일이 없어서 발생하는 에러이므로 log4j2.xml 파일을 생성해 주면 된다.

경로는 classpath 또는 메이븐 프로젝트인 경우 src/main/resources이고 아래는 파일 내용.

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

 

위 내용은 apache.org에서 제시하는 가장 기본적인 설정 내용이고, 더 자세한 설정은 아래 참고.

 

 

log4j.properties 파일 추가

일부 프로젝트에서는 속성 파일도 필요한 경우가 있다(poi는 요구하지 않았음).

log4j2.xml 파일과 동일한 경로에 아래 내용으로 생성한다.

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] - %m%n

log4j.category.com.monitorjbl=DEBUG

 

해당 파일이 누락된 경우 발생했던 에러 메시지.

 

Error Message

log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties (The system cannot find the file specified)