Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 RollingFileManager OnStartupRiggeringPolicy从不在启动时滚动文件_Java_Logging_Log4j2 - Fatal编程技术网

Java Log4j2 RollingFileManager OnStartupRiggeringPolicy从不在启动时滚动文件

Java Log4j2 RollingFileManager OnStartupRiggeringPolicy从不在启动时滚动文件,java,logging,log4j2,Java,Logging,Log4j2,我试图让log4j2(V2.11.1)在启动时滚动现有日志文件,然后再开始登录到新文件。我的配置在下面。我使用的是一个RollingFileManager,其OnStartupRiggeringPolicy的minSize=0,根据文档,这应该足够了 然而,我发现在启动时,OnStartupTriggeringPolicyclassinitialize方法将日志文件的时间戳与JVM启动进行比较,如果日志文件时间在启动时间之后,则不会滚动文件。如果我一步一步地浏览代码,那么我会看到在进行检查时,文

我试图让log4j2(V2.11.1)在启动时滚动现有日志文件,然后再开始登录到新文件。我的配置在下面。我使用的是一个RollingFileManager,其OnStartupRiggeringPolicy的minSize=0,根据文档,这应该足够了

然而,我发现在启动时,
OnStartupTriggeringPolicy
class
initialize
方法将日志文件的时间戳与JVM启动进行比较,如果日志文件时间在启动时间之后,则不会滚动文件。如果我一步一步地浏览代码,那么我会看到在进行检查时,文件时间总是在JVM启动时间之后,因为log4j2似乎已经在该点打开了文件进行写入

public void initialize(RollingFileManager manager) {
    if (manager.getFileTime() < JVM_START_TIME && manager.getFileSize() >= this.minSize) {
        if (this.minSize == 0L) {
            manager.setRenameEmptyFiles(true);
        }

        manager.skipFooter(true);
        manager.rollover();
        manager.skipFooter(false);
    }
}
确认为a,已在Log4j2的尚未发布的V2.11.2中修复

{
    "configuration": {
        "appenders": {
            "Console": {
                "name": "Console",
                "PatternLayout": {
                    "pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%c{2}] [%t]%n[%p] : %m%n"
                }
            },
            "RollingFile": {
                "name": "RollingFile",
                "fileName": "logs/orchestrator.log",
                "filePattern": "logs/orchestrator-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz",
                "append": false,
                "PatternLayout": {
                    "pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%c{2}] [%t]%n[%p] : %m%n"
                },
                "Policies": {
                    "OnStartupTriggeringPolicy": {
                        "minSize" : 0
                    },
                    "SizeBasedTriggeringPolicy": {
                        "size": "50 MB"
                    }
                },
                "DefaultRolloverStrategy": {
                    "max": "10"
                }
            }
        },
        "loggers": {
            "root": {
                "level": "info",
                "AppenderRef": [
                    {"ref": "RollingFile", "level": "INFO"},
                    {"ref": "Console", "level": "ERROR"}
                ]
            }
        }
    }
}