ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • log4j 설정
    개발자의 공부는 은퇴까지 필수다/개발 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

Designed by Tistory.