当我将其设置成
<maxFileSize>1KB</maxFileSize>
的时候死活不生效。就是不给我按照大小分割。
将logback的日志信息打印如下:
Archive files will be limited to [1 KB] each.
明明是生效了啊,怎么回事呢?
原来,是这个1KB设置的太小了,logback"来不及切割",因为我其实就想测一下这个按照大小分割的功能,所以设置了1KB。
按照前人经验,得设置成10MB,才能看出来。
因此我直接写了个循环,把logger.info(“坑啊。。。”)循环了若干遍。
终于,出现了按照大小分割的文件。
原来就是来不及切分的原因,下面还有几个51MB的也来不及切分。
原因就是这样了。
下面提供一下我的logback.xml配置参考一下
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义参数常量-->
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<property name="log.level" value="debug"/>
<!--文件保留时间-->
<property name="log.maxHistory" value="2"/>
<!--单个文件最大大小-->
<property name="log.maxFileSize" value="10MB"/>
<!--所有日志最多占有多大硬盘-->
<property name="log.totalSizeCap" value="20GB"/>
<!--日志根目录-->
<property name="log.filePath" value="/Users/pythonbug/"/>
<!--日志的输出格式-->
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
<!--控制台输出-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--转行成字符串,输出-->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!--文件输出-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件路径-->
<file>${log.filePath}/debug.log</file>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--归档文件名称-->
<fileNamePattern>${log.filePath}/debug/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--文件最大保存历史数量-->
<maxHistory>${log.maxHistory}</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
<maxFileSize>${log.maxFileSize}</maxFileSize>
<!--所有日志最多占多大容量-->
<totalSizeCap>${log.totalSizeCap}</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!--暂时不区分目录存日志-->
<!-- <filter class="ch.qos.logback.classic.filter.LevelFilter">-->
<!-- <level>DEBUG</level>-->
<!-- <onMatch>ACCEPT</onMatch>-->
<!-- <onMismatch>DENY</onMismatch>-->
<!-- </filter>-->
</appender>
<root level="${log.level}">
<appender-ref ref="file" />
<appender-ref ref="console" />
</root>
</configuration>