[Springframework] log4j2설정(log4j로그 안찍히는현상해결)

2020. 8. 23. 18:42Error/스프링프레임워크

728x90

[문제상황]

스프링 프로젝트 생성시 기본으로 설정되는 log4j.xml이 실행되지 않아서 로그가 찍히지 않는 현상 발생

 

[해결방법]

1. 기존 pom.xml에 작성되어있던 log4j관련 설정코드를 아래와 같이 변경해줍니다.

<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>

 

위 pom.xml만 수정 후 main메서드를 실행하면 콘솔에 ERROR발생

ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration 
(logging only errors to the console), or user programmatically provided configurations.
Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging.
See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions 
on how to configure Log4j 2

 

2. 프로젝트 src/main/resources 하위에 기존 log4j.xml 파일을 아래와 같이 코드를 변경해주고, 파일명을 'log4j2.xml'로 변경해줍니다.

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
	<!-- Appenders --> 
	<Appenders> 
	<Console name="console" target="SYSTEM_OUT">
		<PatternLayout pattern="%-5p: %c - %m%n" />
	</Console> 
	</Appenders>
	
	 <!-- Application Loggers -->
	 <Loggers> 
	   	<Logger name="com.springbook.biz" level="DEBUG" additivity="false">
	    	<AppenderRef ref="console" />
	    </Logger> 
	    <Logger name="org.springframework.core" level="DEBUG" additivity="false"> 
	    	<AppenderRef ref="console" /> 
	    </Logger> 
	    <Logger name="org.springframework.beans" level="DEBUG" additivity="false"> 
	    	<AppenderRef ref="console" /> 
	    </Logger> 
	    <Logger name="org.springframework.context" level="DEBUG" additivity="false"> 
	   		<AppenderRef ref="console" /> 
	    </Logger>
	 	<Logger name="org.springframework.web" level="DEBUG" additivity="false"> 
	    	<AppenderRef ref="console" /> 
	    </Logger>
	    <Logger name="org.springframework" level="DEBUG" additivity="false"> 
	    	<AppenderRef ref="console" /> 
	    </Logger> 
	 </Loggers>
</Configuration>

 

 

3. 변경 후 main메서드를 실행해보면 아래와 같이 정상적으로 로그 찍힙니다.

DEBUG: org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loaded 1 bean definitions from class path resource [applicationContext.xml]
DEBUG: org.springframework.context.support.GenericXmlApplicationContext - Refreshing org.springframework.context.support.GenericXmlApplicationContext@1ad282e0
DEBUG: org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean 'tv'
===> SamsungTV 객체생성
SamsungTV---전원 켠다.
SamsungTV---소리 올린다.
SamsungTV---소리 내린다.
SamsungTV---전원 끈다.
DEBUG: org.springframework.context.support.GenericXmlApplicationContext - Closing org.springframework.context.support.GenericXmlApplicationContext@1ad282e0, started on Sun Aug 23 18:40:04 KST 2020

 

728x90