[SPRING] log4j2.xml 설정

log4j2.xml 설정

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN">
 <appenders>
  <Console name="console"target="SYSTEM_OUT">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
  </Console>

  <RollingFile name="file" fileName="./logs/all.log" filePattern="./logs/all.%i.%d{yyyy-MM-dd}.log">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
   <Policies>
    <SizeBasedTriggeringPolicy size="10MB" /> <!-- 이 용량이 초과되면 아래 DefaultRolloverStrategy 정책만큼 넘버링 할거다. -->
   </Policies>
   <DefaultRolloverStrategy max="1000" fileIndex="min" /><!-- 0부터 1000개 까지만 만들거다 1000개 초과되면 파일이 더생성안된다. -->
  </RollingFile>
 </appenders>

 <loggers>
 
  <!-- 모든 로그는 dubug레벨 이상일때만 찍고 -->
  <root level="debug" additivity="false" >
   <appender-ref ref="console" />
   <appender-ref ref="file" />
  </root>

  <!-- 로그많이 찍어대는 요놈들은 warn수준이상만 찍겠다. -->

     <logger name="org.springframework" level="warn" additivity="false" >
      <appender-ref ref="console" />
      <appender-ref ref="file" />
     </logger>

     <logger name="org.apache.http" level="warn" additivity="false" >
      <appender-ref ref="console" />
      <appender-ref ref="file" />
     </logger>

     
     <!-- 내패키지는 무조건 찍자 -->
     <logger name="kr.co.mypackage" level="trace" additivity="false" >
      <appender-ref ref="console" />
   <appender-ref ref="file" />
     </logger>

 </loggers>
</configuration>


Console 은 Console 경우에만 RollingFile은 RollingFile 경우에 사용하시면 되겠습니다. 경로와 파일명 그리고 콘솔 level 값은 자신이 필요한 속성으로 바꾸셔서 사용하면됨

log4j는 크게 3가지의 큰 뼈대를 가지고 있다.
​ (1) Logger(Category : 요녀석은 잘 쓰지 않는다) : logging 메시지를 Appender에 전달.
 (2) Appender : 전달된 로깅 메시지를 파일, 콘솔,DB에 저장 할 지 지정하는 역할을 한다.
 (3) Layout : Appender가 어디에 출력 할 것인지 결정했다면 어떠한 형식으로 출력을 할 지 출력 layout을 결정

log4j level
      logging 레벨은 TRACE < DEBUG < INFO < WARN < ERROR and FATAL 이며,
      1) FATAL : 가장 크리티컬한 에러가 났을 때 사용.
      2) ERROR : 일반 에러가 났을 경우 사용.
      3) WARN : 에러는 아니지만 주의할 필요있을 때 사용.
      4) INFO : 일반 정보를 나타날 때 사용.
      5) DEBUG : 일반 정보를 상세히 나타낼 때 사용.
      6) TRACE : 가장 레벨이 낮은 단계, 보통 DEBUG로 많이 하며 TRACE는 본적이...;
      debug 레벨로 했다면 INFO~FATAL까지 모두 logging이 되어집니다.
      운영모드라면 INFO레벨로 하면된다.
 
이상으로 포스팅을 마치겠습니다.



[출처] log4j2.xml 설정|작성자 신입개발자

댓글

이 블로그의 인기 게시물

[ MongoDB ] STS에서 MongoDB연동 및 데이터 추출

[ Spring ] AOP(Aspect Oriented Programming) 기본개념