2013-06-01 33 views
16

Tôi đang sử dụng đăng nhập trong appliaction web java của tôi. đây là tệp "logback.xml" của tôi.Làm cách nào để tự động định cấu hình đăng nhập thành gzip nhật ký của tôi?

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

    <property name="LOG_DIR" value="/home/ying/.jetty_logs/vehicle" /> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%date [%thread] %-5level %logger{36}[%L] - %msg%n</pattern> 
     </encoder> 
    </appender> 

    <appender name="LAST" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${LOG_DIR}/last.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>last.%d{yyyy-MM}.gz</fileNamePattern> 
      <maxHistory>24</maxHistory> 
     </rollingPolicy> 
     <encoder> 
      <pattern>%date:%msg%n</pattern> 
     </encoder> 
    </appender> 

    <logger name="org.springframework" level="WARN" /> 
    <logger name="org.apache.shiro" level="WARN" /> 
    <logger name="org.hibernate" level="WARN" /> 

    <logger name="ying.car.interceptor.AutoLoginInterceptor" additivity="false" level="INFO"> 
     <appender-ref ref="LAST" /> 
    </logger> 
    <logger name="ying.car.controller.LoginController" additivity="false" level="INFO"> 
     <appender-ref ref="LAST" /> 
    </logger> 
    <logger name="ying.car.controller.LogoutController" additivity="false" level="INFO"> 
     <appender-ref ref="LAST" /> 
    </logger> 

    <root level="DEBUG"> 
     <appender-ref ref="STDOUT" /> 
    </root> 

</configuration> 

Hôm nay là tháng 1 năm 2013, tất cả nhật ký cũ của tôi bị ghi đè và không tạo * .gz. ai đó giúp tôi, xin vui lòng.

+0

đặt và xem những gì logback cho bạn biết. – Ceki

Trả lời

22

Hãy thử làm như thế này, Hy vọng nó sẽ làm việc cho bạn.

<appender name="FILE" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <File>${LOGDIR}/filename.log</File> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <FileNamePattern>${LOGDIR}/file.%d{yyyy-MM-dd}.%i.log.gz 
     </FileNamePattern> 
     <!-- keep 30 days' worth of history --> 
     <MaxHistory>30</MaxHistory> 
     <!-- or whenever the file size reaches 10MB --> 
     <timeBasedFileNamingAndTriggeringPolicy 
      class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern>%date [%thread] %-5level %logger{36} - %msg%n 
     </Pattern> 
    </encoder> 
</appender> 

Mã trên sẽ nén tệp của bạn vào ngày hoặc Nếu kích thước tệp nhật ký vượt quá 10MB.

Lưu ý: Tôi đã thêm "% i" trong filePattern, Nó sẽ lặp tên tập tin của bạn như file1, file2, vv

6

Hãy thử thêm <cleanHistoryOnStart>true</cleanHistoryOnStart> để rollover xảy ra khi khởi động tiếp theo, như thể nó là không chạy vào thời điểm rollover nó sẽ không xảy ra.