• logback 按时间和大小生成日志不生效的问题


    服务器要记录所有的日志,这些日志输入到一个文件中太大了,就需要按大小和时间还分割,比如每小时产生一个文件或当文件大小大于200MB的时候生成一个文件。

    第一版这样版本,但是服务器启动之后没有生成日志文件:

    <appender name="CONSOLE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${log.home}/consolelogs/console.log</file>
            <append>true</append>
            <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- daily rollover -->
                <fileNamePattern>${log.home}/consolelogs/console.%d{yyyy-MM-dd_HH}.log
                </fileNamePattern>
                <maxHistory>72</maxHistory>
                <maxFileSize>200MB</maxFileSize>
            </rollingPolicy>
    
            <encoder>
                <pattern>%d{HH:mm:ss} %-5level [%thread][%file:%line] : %msg%n
                </pattern>
            </encoder>
        </appender>

    这个配置原来是参考 ch.qos.logback.core.rolling.TimeBasedRollingPolicy 这个按时间滚动方式配置的。

    之所以没有生效,是因为一个结节没有配置上。

    <appender name="CONSOLE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${log.home}/consolelogs/console.log</file>
            <append>true</append>
            <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- daily rollover -->
                <fileNamePattern>${log.home}/consolelogs/console.%d{yyyy-MM-dd_HH}.%i.log   //这里面的%i不能少
                </fileNamePattern>
                <maxHistory>72</maxHistory>
                <maxFileSize>200MB</maxFileSize>
            </rollingPolicy>
    
            <encoder>
                <pattern>%d{HH:mm:ss} %-5level [%thread][%file:%line] : %msg%n
                </pattern>
            </encoder>
        </appender>

    上面在时间配置之后,有一个%i,这个绝对不能少。要不然在同一个小内产生多个日志文件就没办法区分了,这个i就是为了产生一个序号,防止日志文件覆盖。

  • 相关阅读:
    Swift学习笔记(7)--控制流
    安装APK时报 Installation failed with message Failed to finalize session : INSTALL_FAILED_USER_RESTRICTED: Invalid apk.
    Android Notification 的四种使用方式
    Socket.io
    socket
    socket.io 中文手册 socket.io 中文文档
    Android中的CardView使用
    TabLayout实现底部导航栏(2)
    使用PagerSlidingTabStrip实现顶部导航栏
    TabLayout实现顶部导航栏(1)
  • 原文地址:https://www.cnblogs.com/wgslucky/p/10071791.html
Copyright © 2020-2023  润新知