我正在一个项目中记录一堆文件中的东西,我希望确保我的日志文件在达到文件的固定限制后立即生效。我有一个低于logback.xml
文件,但它看起来像文件大小不起作用。我看到我的文件大小为793M,但限制我已经是100M如何根据文件大小保持滚动日志文件?
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>process.log</file>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>process%i.log</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>9</maxIndex>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %msg%n</pattern>
<!-- this improves logging throughput -->
<immediateFlush>true</immediateFlush>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
我在这里做什么错?在采伐方面,我们应该遵循什么样的最佳政策?我们在一个文件中记录了一堆东西,我们不想用这个日志文件填满磁盘。
感谢您的示例。最后你有'root level = DEBUG'这是什么意思一般?如果我使用'INFO',而不是'DEBUG',那么会发生什么? – john
将根级别设置为调试意味着默认情况下,您希望将所有log.debug()调用输出到文件。如果将其设置为INFO,则不会在文件中看到DEBUG日志语句。在Production环境中,通常会将日志级别提高到WARN以减少输出的日志量。我通常在生产环境中使用INFO,并发现这已经足够了。您可以在您的配置中添加特定的元素以'覆盖'默认值: –
pczeus
让我知道这是否解决您的问题,并接受它作为答案。祝你好运! – pczeus