2015-09-26 36 views
0

我有一個應用程序,我在其中使用logback。我logback.xml文件是像這樣:如何將日誌文件製作爲zip文件?

<configuration> 

    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <file>myApp.log</file> 

    <encoder> 
     <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss", UTC} [%thread] %-5level %logger{36} %L - %msg%n</Pattern> 
    </encoder> 
    </appender> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
     <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss", UTC} [%thread] %-5level %logger{36} %L - %msg%n</Pattern> 
    </encoder> 
    </appender> 

    <logger name="source.main.FileProcess" level="INFO" /> 
    <logger name="source.main.FileReadWrite" level="INFO" /> 
    <logger name="source.main.OperatorLoader" level="DEBUG" /> 
    <logger name="source.exception.ValidationException" level="INFO" /> 
    <logger name="source.validation.Validation" level="INFO" /> 
<logger name="source.main.OperatorLoader" level="DEBUG" /> 

    <root level="debug"> 
    <appender-ref ref="FILE" /> 
    <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

現在我想說,如果我的myApp.log文件的大小達到100 KB,然後將其轉換成一個zip的myApp.log。 任何人都可以幫助我做到這一點?

回答

2

您可以使用類似下面,這是我在我們的項目中使用。這月創建的文件夾,並保持它的日常文件gz格式

<timestamp key="date" datePattern="yyyy-MM-dd"/> 
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>myApp.log</file> 
    <append>true</append> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>archived_logs_%d{yyyy-MM,aux}/myApp_%d{yyyy-MM-dd}.log.gz</fileNamePattern> 
    </rollingPolicy> 
    <maxHistory>180</maxHistory> 
    <encoder> 
     <pattern>[%d{yyyy.MM.dd HH:mm:ss.SSS}] [%t] [%p] [%logger{5}] [%X] %msg%n</pattern> 
    </encoder> 
</appender> 
0

如果你讀here,有一章節說明如果指定的名稱與.zip.gz

就像FixedWindowRollingPolicy結束FixedWindowRollingPolicyTimeBasedRollingPolicy追加程序將壓縮日誌文件,TimeBasedRollingPolicy支持 自動文件壓縮。如果fileNamePattern選項的值爲 以.gz或.zip結尾,則啓用此功能。

我想它會像

<file>test.log</file> 

<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
    <fileNamePattern>tests.%i.log.zip</fileNamePattern> 
    <minIndex>1</minIndex> 
    <maxIndex>3</maxIndex> 
</rollingPolicy> 
+0

她關心的大小和'FixedWindowRollingPolicy'不會在這種情況下 – Rehman

+0

沒有幫助,但接受的答案基本上是同樣的事情。 – JoSSte