Logging 编辑Log4j2默认滚动策略';s在代码中删除操作
我已经编写了一些代码,可以在代码中编辑我的RollingFileAppenders DefaultRolloverStrategy-Logging 编辑Log4j2默认滚动策略';s在代码中删除操作,logging,log4j2,rollover,Logging,Log4j2,Rollover,我已经编写了一些代码,可以在代码中编辑我的RollingFileAppenders DefaultRolloverStrategy- DefaultRolloverStrategy newStrategy = DefaultRolloverStrategy.createStrategy(Integer.toString(max), "1", "max", "2", null, true, config); Appender appender = config.g
DefaultRolloverStrategy newStrategy = DefaultRolloverStrategy.createStrategy(Integer.toString(max), "1", "max",
"2", null, true, config);
Appender appender = config.getAppender("RollingFile");
((RollingFileAppender) appender).getManager().setRolloverStrategy(newStrategy);
但是,因为在我的xml文件中,我在RollingFileAppender下有这个-
<Delete basePath="logs/">
<IfFileName glob="logs/${baseFileName}-*.log.gz" />
<IfLastModified age="2d" />
</Delete>
我想也许你以某种方式创建了一个删除动作并将其添加到动作数组customActions
根据这一页-
有一个删除操作,但我不确定它是否是要使用的正确操作,或者它是否是应该放入操作[]CustomActions中的操作类型
在该删除操作中,您可以指定路径条件,并且在路径条件中,它具有此方法-
accept(Path baseDir, Path relativePath, BasicFileAttributes attrs)
这将允许您指定基本目录、relativePath(可能这就是我将信息放在IfFileName中的地方?)和BasicFileAttributes,其中一个属性是最后一次修改的,因此似乎适合
有人知道我在这里是否走上了正确的道路,这会起作用吗?或者说,在不构建新配置或编辑xml文件的情况下,是否有可能做到这一点
accept(Path baseDir, Path relativePath, BasicFileAttributes attrs)