configuration - 如何配置logback以自动gzip日志?

标签 configuration gzip logback

我在Java Web应用程序中使用logback。这是我的“logback.xml”文件。

<?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>

今天是2013年6月1日,我所有的旧日志都被覆盖,没有创建* .gz。
请有人帮我。

最佳答案

尝试这样做,希望它对您有用。

<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>

上面的代码将按天或如果日志文件大小超过10MB压缩文件。

注意:我在filePattern中添加了“%i”,它将把您的文件名迭代为file1,file2等。

关于configuration - 如何配置logback以自动gzip日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16868011/

相关文章:

configuration - 有没有办法在 Windows Store 应用程序的 ApplicationSettings 中存储自己的类的实例?

java - Logback - 获取方法名称

java - Logback 覆盖依赖项 logback.xml

xml - 如何从 XML 配置文件设置 Spring 属性?

java - 对于 Hibernate 的 "Could not parse configuration"错误我该怎么办?

tomcat - 有什么方法可以使用JAVA自动清除tomcat垃圾值

node.js - 如何将字符串作为 gzip Nodejs 上传到 s3

javascript - 如何在 Amazon Beanstalk 和 Tomcat 上启用 HTML/JavaScript/CSS 的 gzip

python - Python 重启后 Gzip 输出不同

scala - 如何使用 SBT 和 Scala 在开发和生产中正确管理 logback 配置?