Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 使用多个触发策略时限制日志文件总数Log4j2_Logging_Log4j2 - Fatal编程技术网

Logging 使用多个触发策略时限制日志文件总数Log4j2

Logging 使用多个触发策略时限制日志文件总数Log4j2,logging,log4j2,Logging,Log4j2,我想做的就是 当日志文件超过10MB标记时要滚动的日志文件 系统重新启动时要滚动的日志文件 要在日期更改时滚动的日志文件 一次最多可在logs文件夹中保存100个文件,这样大小就不会超过1GB 在下面的配置中,我哪里出错了?它实际上每天限制100个文件,而不是总共100个文件。使用的Log4j2版本是2.11 <RollingFile name="rollingFile" fileName="${logPath}/${rollingFileName}.log" filePatt

我想做的就是

  • 当日志文件超过10MB标记时要滚动的日志文件
  • 系统重新启动时要滚动的日志文件
  • 要在日期更改时滚动的日志文件
  • 一次最多可在logs文件夹中保存100个文件,这样大小就不会超过1GB
在下面的配置中,我哪里出错了?它实际上每天限制100个文件,而不是总共100个文件。使用的Log4j2版本是2.11

    <RollingFile name="rollingFile" fileName="${logPath}/${rollingFileName}.log" filePattern="${logPath}/${rollingFileName}_%d{yyyy-MM-dd}.%i.log">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSSXXX} %logger %-5level [%X{account}] [%t] [%X{context}] %X{version} %msg%n"/>
        <Policies>
            <!-- Causes a rollover if the log file is older than the current JVM's start time -->
            <OnStartupTriggeringPolicy />
            <!-- Causes a rollover if the log file is bigger that 10 MB -->
            <SizeBasedTriggeringPolicy size="10 MB" />
            <!-- Causes a rollover once the date/time pattern no longer applies to the active file -->
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
        <!-- Allows creation of maximum 100 log files. Each of 10MB size would ensure logs folder never exceeds the size limit of 1.1GB -->
        <DefaultRolloverStrategy max="100"/>
    </RollingFile>

关于生成的最大文件数,我相信您可以使用自定义操作。不过,为了写下正确的代码,我没有过多地研究它

编辑:您希望日志文件夹中最多有100个文件: 查找
超过
参数-该参数应满足您的要求:

EDIT2:我看了看中场休息。 根据此讨论,间隔受
%d{}
的影响

模式中只允许一个
%d{}
。如果该模式包括
HH
作为最细粒度,则文件将每小时滚动一次。如果它只有
dd
,那么它将每天滚动。如果它是
MM
,则它将每月滚动。
如果您想每天滚动,您的模式应该是“/backup/${yyyy/MM/dd}/module-%d{yyyy-MM-dd}-%i.log.gz”。