Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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
Java 删除操作中的log4j2 IFLASTMODIFED条件未正确解释年龄持续时间_Java_Log4j2 - Fatal编程技术网

Java 删除操作中的log4j2 IFLASTMODIFED条件未正确解释年龄持续时间

Java 删除操作中的log4j2 IFLASTMODIFED条件未正确解释年龄持续时间,java,log4j2,Java,Log4j2,我似乎无法在log4jDelete操作中获得IfLastModified条件来正确解释以月为单位的年龄设置。它一直把它当作分钟 我在log4jxml配置文件中有这个删除操作 <DefaultRolloverStrategy> <Delete basePath="${logging.dir}" maxDepth="1"> <IfFileName glob="framework-${hostName}-

我似乎无法在log4jDelete操作中获得IfLastModified条件来正确解释以月为单位的年龄设置。它一直把它当作分钟

我在log4jxml配置文件中有这个删除操作

<DefaultRolloverStrategy>
   <Delete basePath="${logging.dir}" maxDepth="1">
      <IfFileName glob="framework-${hostName}-*.log" />
      <IfLastModified age="2m" />
   </Delete>
</DefaultRolloverStrategy>
根据工期规范 要解决歧义,“P1M”是一个月的持续时间,“PT1M”是一分钟的持续时间(请注意时间值前面的时间指示符T)

我尝试使用不同的持续时间格式指定年龄,但结果相同

<IfLastModified age="P2m" />
...
<IfLastModified age="P2M" />

但是,这没有任何影响。

Log4j2 Duration对象不支持Duration中的月份格式。这一定是这种行为的原因。它在API文档中有记录-

ISO-8601持续时间标准的简化实施。支持的格式为PnDTnHnMnS,可选“P”和“T”。天被认为正好是24小时

与java.time.Duration类类似,该类不支持 格式中的年或月部分。这个实现不需要 支持分数或负值


Log4j2 Duration对象不支持Duration中的月份格式。这一定是这种行为的原因。它在API文档中有记录-

ISO-8601持续时间标准的简化实施。支持的格式为PnDTnHnMnS,可选“P”和“T”。天被认为正好是24小时

与java.time.Duration类类似,该类不支持 格式中的年或月部分。这个实现不需要 支持分数或负值


我想你找到了原因。谢谢,我想你找到原因了。谢谢
<IfLastModified age="P2m" />
...
<IfLastModified age="P2M" />
filePattern="${logging.dir}/framework-${hostName}-%d{yyyy-MM-dd-HH-mm}.log"