lowellSunny 2020. 9. 17. 16:54

log4j.xml 을 이루는 태그

<Appender> - 로그의 출력 위치를 결정 ( 파일, 콘솔, DB 등 )

<Layout> - 출력 형식 결정

<Logger> - 로깅 메시지를 Appender에 전달. 개발자가 로그레벨을 이용해 로그 출력 여부 조정 가능

 

 

* Appender class 종류

* PatternLayout 클래스에서 사용되는 출력 속성

 

 

	<!-- Root Logger -->
	<root>
		<priority value="warn" /><!-- 전체 어플리케이션의 레벨을 지정할 때 사용( default, logger로 따로 레벨을 지정해주면 해당 패키지는 지정레벨로  -->
		<appender-ref ref="console" />
		<appender-ref ref="ERROR" />
		<appender-ref ref="LOGFILE-DAILY" />
	</root>

위 코드에서 priority로 정의 된 것은 어플리케이션의 기본 로그레벨을 결정한다.

그리고 다음과 같이 <logger> 태그에서 정의 된 내용들에게 로그레벨에 대한 우선순위가 있다.

(로그레벨 부분설정)

 

	<!-- mybatis loggers start -->
	<!-- 에러일 경우 sql 쿼리문까지 출력 -->
	<logger name="java.sql.Connection">
		<level value="error" />
	</logger>
	<logger name="java.sql.Statement">
		<level value="error" />
	</logger>
	<logger name="java.sql.PreparedStatement">
		<level value="error" />
	</logger>
	<logger name="java.sql.ResultSet">
		<level value="error" />
	</logger>
	<!-- mybatis loggers end -->
	
	
	<!-- 3rdparty Loggers -->
	<!-- 패키지별로 다른 로그레벨 적용 -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

 

 

 

* log4j 성격별 로그파일 error레벨 지정하기

- ex) ERROR.log 파일에는 ERROR 레벨만 출력하고싶다면?

	
     <appender name="ERROR" class="org.apache.log4j.rolling.RollingFileAppender">
		<param name="Threshold" value="ERROR" />
		<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
			<param name="FileNamePattern" value="D:/WWW/Web/NewIntranet/Log/Online/error.%d{yyyy-MM-dd}.log"/>
			<param name="maxHistory" value="2"/>
		</rollingPolicy>
		
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}][(%F:%L)] %r %5p - %m%n [message:::::] %m" />
		</layout>
	</appender>

<param name="Threshold" value="ERROR" />

해당 라인을 추가하면 된다. log4j.appender.console.Threshold를 이용하여 해당파일이 출력하는 로그의 레벨을 설정할 수 있다.

 

 

 

출처 : www.youtube.com/watch?v=hfmSIrBlHHI