Log4j 2 XML Configuration

Xml 파일 위치

XML 파일 (log4j2.xml)을 작성하고, WEB-INF/classes 하위에 포함될 수 있도록 위치시킨다.
Log4j 2가 초기화될 때 자동으로 위 설정 파일을 읽어들인다

 

Xml 파일 정의 Sample

파일 (log4j.xml)을 작성 시 Log4j 2에서는 최상의 요소가 <Configuration>으로 변경 되었음을 기억해야 합니다.

<Configuration>요소 아래에 Logger, Appender, Layout 설정 등과 관련한 하위 요소를 정의

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%-5p: %d] %m [%c]%n" />
		</layout>
	</appender>

	<logger name="jdbc.audit" additivity="false">
		<level value="warn" />
		<appender-ref ref="console" />
	</logger>
	<logger name="jdbc.resultset" additivity="false">
		<level value="warn" />
		<appender-ref ref="console" />
	</logger>
	<logger name="jdbc.resultsettable" additivity="false">
		<level value="info" />
		<appender-ref ref="console" />
	</logger>
	...
    
	<root>
		<priority value="debug" />
		<appender-ref ref="console" />
	</root>
</log4j:configuration>

관련/참고 사이트

http://logging.apache.org/log4j/2.x/manual/configuration.html

 

Log4j – Configuring Log4j 2

Configuration Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging. Consequently, even moderately sized applications will have thousan

logging.apache.org

http://logging.apache.org/log4j/2.x/manual/configuration.html#XML

 

Log4j – Configuring Log4j 2

Configuration Inserting log requests into the application code requires a fair amount of planning and effort. Observation shows that approximately 4 percent of code is dedicated to logging. Consequently, even moderately sized applications will have thousan

logging.apache.org

 

Logger의 사용

public class SampleClass extends HandlerInterceptorAdapter {

    protected Logger logger = LoggerFactory.getLogger(SampleClass.class);
    public String sampleMethod(Object obj) throws Exception {
    	logger.debug("logger 내용");
    }

    	

log Level

Log Level에 따라 log의 출력여부를 지정할 수 있다.

Log Level DESC
FATAL 아주 심각한 에러가 발생한 상태를 나타냄. 시스템적으로 심각한 문제가 발생해서 어플리케이션 작동이 불가능할 경우가 해당하는데, 일반적으로는 어플리케이션에서는 사용할 일이 없음.
ERROR 요청을 처리하는중 문제가 발생한 상태를 나타냄.
WARN 처리 가능한 문제이지만, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타냄.
INFO 로그인, 상태변경과 같은 정보성 메시지를 나타냄.
DEBUG 개발시 디버그 용도로 사용한 메시지를 나타냄.
TRACE 디버그 레벨이 너무 광범위한 것을 해결하기 위해서 좀더 상세한 상태를 나타냄.

 

Appender 설정

ConsoleAppender : 이클립스 console 같은곳에 로그를 출력하기 위해 사용합니다.

 <Console name="console" target="SYSTEM_OUT">
  <PatternLayout pattern="%d %5p [%c] %m%n" />
 </Console>

FileAppender ; 로그를 파일에 저장할 때 사용합니다.

<File name="file" fileName="./log file path/sample.log" append="false">
  <PatternLayout pattern="%d %5p [%c] %m%n" />
</File>	

 

log를 File과 Console에 동시에 쌓는 코드

<root>
	<priority value="debug" />
	<appender-ref ref="console" />
</root>

+ Recent posts