我一直在尝试建立一个简单的logback项目来按日期和文件大小滚动日志文件,但到目前为止,我还无法让appender滚动到另一个文件,而是写入<file/>
标记指定的日志。
下面是我的logback.xml
配置文件:
<?xml version="1.0"?>
<configuration scan="true" scanPeriod="10 seconds">
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</layout>
</appender>
<appender name="milliroller" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/output.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</layout>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>log/mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1KB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="stdout"/>
<appender-ref ref="milliroller"/>
</root>
<logger name="com.tkassembled.logback" level="DEBUG"/>
</configuration>
乍一看,它看起来应该可以工作,对吗?我做错了什么吗?我的整个可构建项目在这里的zip中可用:http://www.mediafire.com/file/2bxokkdyz2i/logback.zip
2条答案
按热度按时间gopyfrb31#
虽然这是一个老问题,但我觉得一个可行的答案对于帮助任何需要这种实现的人来说是合适的。
我使用下面的logback配置来提供一个HTML日志,按日期和文件大小滚动,并记录到控制台以调试输出。
日志文件存储在一个
logs
目录中,当它处于活动状态时,名称为logFile.html
,当它翻转时,名称为logFile.2013-mm-dd.i.html
,其中i是50MB日志文件的数量。7kjnsjlb2#
自logback 1.1.7(2016年3月发布)以来,一个名为
SizeAndTimeBasedRollingPolicy
的新策略可以极大地简化您需要做的事情:更多信息请参见此处。