java - 如果文件大小大于 X mb,则停止记录

标签 java logging logback

我们的系统负载很重。如果出现问题,系统每分钟都会生成 MB 的日志。几分钟后我们就已经找不到问题的根源(因为日志文件受到大小的限制)

如果文件大小大于 X mb,是否可以停止记录? logback有这个appender吗?

最佳答案

这篇文章Rolling logback logs on filesize and time可能会回答你的问题:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- daily rollover -->
         <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <!-- or whenever the file size reaches 50MB -->
            <maxFileSize>50MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- keep 30 days' worth of history -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder>
  <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender> 

More infos

关于java - 如果文件大小大于 X mb,则停止记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519789/

相关文章:

ruby-on-rails - 在有状态对象上记录数据的最佳模式是什么?

java - Logback忽略父包的记录器

exception - 如何不在 Logback 中记录特定类型的异常?

java - 如何设置Maven项目选择性生成签名文件

Java程序比较两个文本文件,然后将第一个文本文件中找到的变量替换为第二个文件中的变量到第三个文件中

java - 遇到这个java代码的问题 - 应该打印并计算随机抛硬币中正面和反面的数量

multithreading - 从多线程生成的 Log4Net 中读取日志

c++ - 如何获取所有函数参数值列表并将它们链接到 Visual C++ 中的日志记录类?

java - 我的基于 logback java(无 xml)的配置被忽略

java - 在 Java 中转换迭代器类型