Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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监视器日志文件_Java_Performance_Logging_Log4j_Monitoring - Fatal编程技术网

Java监视器日志文件

Java监视器日志文件,java,performance,logging,log4j,monitoring,Java,Performance,Logging,Log4j,Monitoring,我正在开发一个工具来监视几个应用程序的日志文件,这些应用程序使用java.logging或Log4j 追加器始终是滚动文件追加器,文件大小作为滚动的触发器。当两个日志文件(java.logging和log4j)都发生滚动时,所有日志文件都将重命名,以允许当前日志文件具有相同的名称 我的问题是,如果我当前正在读取日志文件,我会阻止它被重命名,因此它将被删除,因为日志记录器不会附加到它应该刚刚创建的文件上 我尝试使用socketAppender来避免读取文件和直接收集数据,但日志记录操作至少需要0,

我正在开发一个工具来监视几个应用程序的日志文件,这些应用程序使用java.logging或Log4j

追加器始终是滚动文件追加器,文件大小作为滚动的触发器。当两个日志文件(java.logging和log4j)都发生滚动时,所有日志文件都将重命名,以允许当前日志文件具有相同的名称

我的问题是,如果我当前正在读取日志文件,我会阻止它被重命名,因此它将被删除,因为日志记录器不会附加到它应该刚刚创建的文件上

我尝试使用socketAppender来避免读取文件和直接收集数据,但日志记录操作至少需要0,1ms(使用fileAppender时为0,02),并且由于我的一个应用程序的粒度为1ms,因此我无法使用它

我通过更改记录器的配置并使用此代码获得了这些结果

long start=System.currentTimeMillis();    
long numberOfLog=0;
long total=1000000;
while(numberOfLog<total){
    log.info(" "+numberOfLog);
    numberOfLog++;
}
long duree=System.currentTimeMillis()-start;

System.out.println("la durée est de "+duree+"ms pour "+total+" logs");
long start=System.currentTimeMillis();
长numberOfLog=0;
长期总计=1000000;

while(NumberOfLog)您是否可以仔细检查滚动文件附加器是否正在重命名当前日志文件或创建新的日志文件?例如,每日滚动附加器,在特定时间以指定的名称格式创建一个新日志文件,并且当前文件不会被重命名。理想情况下会发生擦除(在log4j中)当超过最大备份限制时,您的情况会发生这种情况吗?可能重复: