Java 如何使日志文件成为zip文件?
我有一个应用程序,在其中我使用logback。我的logback.xml文件如下所示:Java 如何使日志文件成为zip文件?,java,logback,Java,Logback,我有一个应用程序,在其中我使用logback。我的logback.xml文件如下所示: <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>myApp.log</file> <encoder> <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss",
<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
%日期{“yyyy-MM-dd'T'HH:MM:ss”,UTC}[%thread]-5级别%logger{36}%L-%msg%n
%日期{“yyyy-MM-dd'T'HH:MM:ss”,UTC}[%thread]-5级别%logger{36}%L-%msg%n
现在我想说,如果我的myApp.log文件的大小变为100KB,那么将其转换为myApp.log的压缩文件。
有人能帮我做这件事吗?如果你读了,有一节说FixedWindowRollingPolicy
,TimeBasedRollingPolicy
如果指定的名称以.zip
或.gz
结尾,appenders将压缩日志文件
与FixedWindowRollingPolicy一样,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>
test.log
测试。%i.log.zip
1.
3.
您可以使用如下内容,这就是我在项目中使用的内容。它为月份创建文件夹,并以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>
myApp.log
真的
存档的{u日志{yyyy-MM,aux}/myApp{u日志{yyy-MM-dd}.log.gz
180
[%d{yyyy.MM.dd HH:MM:ss.SSS}][%t][%p][%logger{5}][%X]%msg%n
她关心大小,而FixedWindowRollingPolicy
在这种情况下没有帮助,但公认的答案基本上是一样的。