관리 메뉴

nalaolla

log4j 사용 및 적용방법 본문

SPRING

log4j 사용 및 적용방법

날아올라↗↗ 2016. 3. 17. 14:14
728x90
반응형

log4j 사용 및 적용방법



============================
1.Log Level
============================
 FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용합니다.
 ERROR : 일반 에러가 일어 났을 때 사용합니다.
 WARN : 에러는 아니지만 주의할 필요가 있을 때 사용합니다.
 INFO : 일반 정보를 나타낼 때 사용합니다.
 DEBUG : 일반 정보를 상세히 나타낼 때 사용합니다.

============================
2.ConversionPattern
============================

 %p  debug, info, warn, error, fatal 등의 priority 가 출력. 
 %m  로그내용이 출력
 %d  로깅 이벤트가 발생한 시간 기록.
   포맷은 %d{HH:mm:ss, SSS}, %d{yyyy MMM dd HH:mm:ss, SSS}같은 형태로 사용하며 SimpleDateFormat에 따른 포맷팅을 하면 된다
 %t  로그이벤트가 발생된 쓰레드의 이름을 출력. 
 %%  % 표시를 출력하기 위해 사용. 
 %n  플랫폼 종속적인 개행문자가 출력.. 
 %c  카테고리를 표시
   예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력.
 %C  클래스명을 표시.
   예)클래스구조가 test.com.spring01.TestVO 처럼 되어있다면 
      %C{2}는 spring01.TestVO 가 출력
 %F  로깅이 발생한 프로그램 파일명.
 %l  로깅이 발생한 caller의 정보
 %L  로깅이 발생한 caller의 라인수
 %M  로깅이 발생한 method 이름
 %r  어플리케이션 시작 이후 부터 로깅이 발생한 시점의 
     시간(milliseconds)
 %x  로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력.
 %X  로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력.

========================
ex)
========================
%-5p: %c - %m%n

{%d{yyyy-MM-dd HH:mm:ss.SSS}} %3p: %C - %m%n

{%d{yyyy-MM-dd HH:mm:ss.SSS}} [%3p] (%C{2}.%M(): %L) - %m%n


========================
로그 파일 생성 및 저장
========================

<!-- 1.log file save -->
	<appender name="testFileLog" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File"
			value="C:/javaStudy/springProject/spring04Logger01_slf4j/src/main/webapp/WEB-INF/testFileLog.log" />
		<param name="Append" value="true" />
		<param name="DatePattern" value=".yyyy-MM-dd" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern"
				value="{%d{yyyy-MM-dd HH:mm:ss.SSS}} [%3p] (%C{2}.%M(): %L) - %m%n" />

		</layout>
	</appender>

<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
		<!-- 2. 1번(log file save)에서 설정한 appender name 이름 세팅 -->
		<appender-ref ref="testFileLog" />
	</root>



  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
  3. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  4.  
  5.     <!-- Appenders -->
  6.     <appender name="console" class="org.apache.log4j.ConsoleAppender">
  7.         <param name="Target" value="System.out" />
  8.         <layout class="org.apache.log4j.PatternLayout">
  9.             <param name="ConversionPattern" value="[%d{MM-dd}][%-5p]: %c{2} %M(); - %m%n" />
  10.             <!--
  11.             %c : 클래스  -> 클래스 full경로
  12.             %m : 메시지 %c{1} 보여주고 싶은 클래스 경로단위 1이면 맨마지막에 있는 클래스만 보여줌
  13.             %n : 줄내림
  14.             %M : 메소드명
  15.             %d : 발생날짜 ex)%d{yyyy-MM-dd}
  16.              -->
  17.         </layout>
  18.     </appender>
  19.    
  20. <!-- 1.log file save -->
  21.     <appender name="testFileLog" class="org.apache.log4j.DailyRollingFileAppender">
  22.         <param name="File"
  23.             value="C:/javastudy/java_spring/spring18log4j/src/main/webapp/WEB-INF/testFileLog.log" />
  24.         <param name="Append" value="true" />
  25.         <param name="DatePattern" value=".yyyy-MM-dd" />
  26.         <layout class="org.apache.log4j.PatternLayout">
  27.             <param name="ConversionPattern"
  28.                 value="{%d{yyyy-MM-dd HH:mm:ss.SSS}} [%3p] (%C{2}.%M(): %L) - %m%n" />
  29.  
  30.         </layout>
  31.     </appender>
  32.  
  33. <!-- Root Logger -->
  34.    
  35.    
  36.     <!-- Application Loggers -->
  37.     <logger name="test.com.spring18log4j">
  38.         <level value="info" />
  39.     </logger>
  40.    
  41.     <!-- 3rdparty Loggers -->
  42.     <logger name="org.springframework.core">
  43.         <level value="info" />
  44.     </logger>
  45.    
  46.     <logger name="org.springframework.beans">
  47.         <level value="info" />
  48.     </logger>
  49.    
  50.     <logger name="org.springframework.context">
  51.         <level value="info" />
  52.     </logger>
  53.  
  54.     <logger name="org.springframework.web">
  55.         <level value="info" />
  56.     </logger>
  57.  
  58.     <!-- Root Logger -->
  59.     <root>
  60.         <priority value="warn" />
  61.         <appender-ref ref="console" />
  62.         <appender-ref ref="testFileLog"/>
  63.     </root>
  64.    
  65. </log4j:configuration>


728x90
반응형

'SPRING' 카테고리의 다른 글

AOP-Aspect Oriented Programming  (0) 2016.03.25
인터셉터(Interceptor) 사용하기  (0) 2016.03.18
mybatis사용하기  (0) 2016.03.16
BasicDataSource 적용하기  (0) 2016.03.14
JSON 파싱 dependency 추가  (0) 2016.03.08