【问题标题】:Having an unlimmitted number of back up files with limitted size in Java - log4J在 Java 中拥有无限数量且大小有限的备份文件 - log4J
【发布时间】:2015-04-07 11:37:05
【问题描述】:

我知道我们可以提供一个 maxFileSize 来限制 log4j RollingFileAppender 记录的日志文件的大小。还有一个参数叫 maxBackupIndex 来限制已经备份的文件数。

我的问题:如果我想拥有无限数量的文件大小有限的备份文件,我该怎么做?

<appender name="STATICDATA" class="org.apache.log4j.RollingFileAppender">
        <param name="append" value="false" />
        <param name="maxFileSize" value="10KB" />
        <param name="maxBackupIndex" value="20" />
        <param name="File" value="/path/to/log/file/Data.log" />
        <param name="Threshold" value="INFO" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%X{StaticDataTraceId}] [%c] %m%n"/>
        </layout>
    </appender> 

【问题讨论】:

  • maxBackupIndex 被定义为int type,它可以把max value 当作2,147,483,647。这个数量的文件作为每日备份就足够了。为什么要拥有无限数量的文件?
  • 因为我想将每个日志文件的大小限制为 10KB,而且我不知道要记录多少字节。
  • 您能发表评论或投票回答吗?我搜索并尝试了几种方法。问了之后。
  • 根据使用的文件系统,可能会遇到最大文件数限制,比@Rahul 答案(FAT32 有人吗?)快得多。
  • 好的。我想要发生的是在记录大小有限的文件时不要错过任何日志。

标签: java logging log4j


【解决方案1】:

由于文件系统的工作方式,您无论如何都不能拥有无限数量的文件 - 例如在 NTFS 中,您的磁盘上有 2^32 个文件的限制。

因此我建议将其设置为整数&lt;param name="maxBackupIndex" value="2147483647" /&gt; 的最大值,也许您的文件系统甚至无法支持那么多文件:)。

【讨论】:

    猜你喜欢
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多