我正在使用Logback,我想将一些字符串记录到日志文件中,并在完成后让它gzip文件。
我跟随的例子是:
Programmatically configure LogBack appender
但是当我完成日志记录时,还没弄明白如何告诉它gzip文件。 所有示例都显示使用fileNamePattern。我见过的例子显示在logback.xml中定义它,但我试图通过代码来做到这一点。
会很感激一些指针/示例:)
答案 0 :(得分:2)
<!-- Time and Size based: Roll every day and split big file in smaller peaces -->
<appender name="ROOT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/root.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/root-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %-5level [%thread] - %mdc{loginName} - [%logger]- %msg%n</pattern>
</encoder>
</appender>
注意“.gz”:这表示将压缩日志文件。将此替换为.zip以使用zip文件。
有一些限制,但基本上是最简单的流程。文档陈述。
与FixedWindowRollingPolicy一样,TimeBasedRollingPolicy支持自动文件压缩。如果fileNamePattern选项的值以.gz或.zip结尾,则启用此功能。