Java logback未生成新的日志文件
我在我的Micronaut项目中使用了lower logback.xml,它并没有按照xml配置中提供的rollingPolicy生成新的日志文件。我尝试了SizeAndTimeBasedRollingPolicy和TimeBasedRollingPolicy,但都没有成功 Micronaut版本:1.2.2 logback经典:1.2.3 文件:logback.xmlJava logback未生成新的日志文件,java,pom.xml,logback,Java,Pom.xml,Logback,我在我的Micronaut项目中使用了lower logback.xml,它并没有按照xml配置中提供的rollingPolicy生成新的日志文件。我尝试了SizeAndTimeBasedRollingPolicy和TimeBasedRollingPolicy,但都没有成功 Micronaut版本:1.2.2 logback经典:1.2.3 文件:logback.xml <configuration> <appender name="FILE" class="ch.q
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/my-app.log</file>
<encoder>
<pattern>%cyan(%d{yyyy-MM-dd HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}):%line- %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.RollingFileAppender">
<fileNamePattern>
logs/my-app.log-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1MB</totalSizeCap>
</rollingPolicy>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%cyan(%d{yyyy-MM-dd HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}):%line- %msg%n</pattern>
</encoder>
</appender>
<root level="ALL">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
日志/my-app.log
%青色(%d{yyyy-MM-dd HH:MM:ss.SSS})%灰色([%thread])%高光(%-5level)%洋红(%logger{36}):%line-%msg%n
logs/my app.log-%d{yyyy-MM-dd}-%i.log.gz
30
1MB
%青色(%d{yyyy-MM-dd HH:MM:ss.SSS})%灰色([%thread])%高光(%-5level)%洋红(%logger{36}):%line-%msg%n
如果im没有错,您的maxHistory策略将阻止您生成多个文件。取而代之的是,它会删除旧的一个,并在新的一天或达到1mb大小时创建一个新的
在这种情况下,maxHistory必须与TimeBasedRollingPolicy相结合,如您所述,maxHistory是天数的参数。如果没有TimeBasedRollingPolicy,它可能只是文件数 根据我自己使用logback的经验,您应该执行以下操作:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
...
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/my-app.log-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>1MB</MaxFileSize>
</triggeringPolicy>
...
</appender>
...
logs/my app.log-%d{yyyy-MM-dd}-%i.log.gz
1MB
...
当前,您正在使用“RollingFileAppender”作为策略,因此它无法工作。在应用程序中,我们为60提供了maxHistory,因为发布了一个问题,我将其保留为1(也有问题地更新了)。当前在服务器上,它仅将所有日志附加到1个文件,文件大小增加到GBs。感谢Orcn,不幸的是,它对我也不起作用(在您的用例中,您是否尝试使用
1MB
而不是1MB
?事实上,totalSizeCap表示您将在所有日志文件上只保留1MB的日志。另外,您可以使用SizeBaseRollingPolicy作为rollingPolicy,使用RollingFileAppender作为appender。来源: