티스토리 뷰

코니79입니다. 댓글 남겨주세요..왼쪽 상단 보시면 됩니다.


logback 적용 팁(크기별, 일자별, 패키지별 로그파일분리)


logging system에서 최근 많이 적용하는 것으로 logback 인듯 합니다.


장단점, 활용방법은 관련 홈페이지 참고하면 될듯합니다. 


logback 홈페이지 : http://logback.qos.ch/documentation.html 


1. 일자별로 로그파일 적용하기 

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

   <!-- daily rollover -->

   <fileNamePattern>/logs/log_file_name.%d{yyyy-MM-dd}.log</fileNamePattern>

</rollingPolicy> 


2. 일자별 로그파일구성외에도 로그파일의 크기가 너무 커지는 것을 방지하기 위한 옵션 


<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

    <!-- or whenever the file size reaches 50MB -->

    <maxFileSize>50MB</maxFileSize>

</timeBasedFileNamingAndTriggeringPolicy> 


3. 일자별 백업파일의 보관기간을 얼마로 정할것인가에 대한 옵션

 


<maxHistory>30</maxHistory> 


4. 로그파일 경로 등에 대해서 변수로 지정하기

 


<property name="LOG_DIR" value="/home/project/logs" />

<property name="LOG_PATH_NAME" value="${LOG_DIR}/stdout.log" /> 


5. 특정 패키지 부분만 별도의 로그파일로 빼고자 하는 경우

 

<logger name="com.test.groupware" level="DEBUG">

  <appender-ref ref="LOG_FILE_2" />

</logger> 

위의 옵션을 적용한 전체 모습은 아래와 같습니다.

 <?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod="30 seconds" debug="true">

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

    <encoder>

     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>

    </encoder>

  </appender> 


<property name="LOG_DIR" value="/home/project/logs" />

<property name="LOG_PATH_NAME" value="${LOG_DIR}/stdout.log" />

<property name="GW_LOG_PATH_NAME" value="${LOG_DIR}/stdout_gw.log" />  


<appender name="LOG_FILE_1" class="ch.qos.logback.core.rolling.RollingFileAppender">

  <file>${LOG_PATH_NAME}</file>

  <append>true</append>

  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

   <!-- daily rollover -->

   <fileNamePattern>${LOG_PATH_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>

   <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

    <!-- or whenever the file size reaches 50MB -->

    <maxFileSize>50MB</maxFileSize>

   </timeBasedFileNamingAndTriggeringPolicy>

   <!-- keep 30 days' worth of history -->

   <maxHistory>30</maxHistory>

  </rollingPolicy>

  <encoder>

   <pattern>%d{HH:mm:ss.SSS} %-6level %logger{35} - %msg%n</pattern>

  </encoder>

 </appender> 

 <appender name="LOG_FILE_2" class="ch.qos.logback.core.rolling.RollingFileAppender">

  <file>${GW_LOG_PATH_NAME}</file>

  <append>true</append>

  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

   <!-- daily rollover -->

   <fileNamePattern>${GW_LOG_PATH_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>

   <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

    <!-- or whenever the file size reaches 50MB -->

    <maxFileSize>50MB</maxFileSize>

   </timeBasedFileNamingAndTriggeringPolicy>

   <!-- keep 30 days' worth of history -->

   <maxHistory>30</maxHistory>

  </rollingPolicy>

  <encoder>

   <pattern>%d{HH:mm:ss.SSS} %-6level %logger{35} - %msg%n</pattern>

  </encoder>

 </appender> 

 <logger name="com.test.groupware" level="DEBUG">

    <appender-ref ref="LOG_FILE_2" />

 </logger>


 <root level="DEBUG">

   <appender-ref ref="STDOUT" />


   <appender-ref ref="LOG_FILE_1" />

 </root>


</configuration>


 

댓글
댓글쓰기 폼
광고위치
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
37,600
Today
93
Yesterday
258
링크
«   2018/05   »
    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    
글 보관함