我正在开发一个监视多个应用程序的日志文件的工具,这些应用程序使用java.logging或Log4j。
appender始终是一个滚动文件追加器,文件大小作为滚动的触发器。当两者(java.logging和log4j)都发生滚动时,所有日志文件都被重命名,以允许当前日志文件具有相同的名称。
我的问题是,如果我正在读取日志记录文件,我不会重命名它,因此它将被删除,因为记录器不会附加到它应该刚刚创建的文件上。
我尝试使用socketAppender来避免读取文件并直接收集数据,但是日志记录的操作至少需要0.1毫秒(带有fileAppender的0,02),因为我的粒度为1毫秒我的应用程序我不能使用它。
我通过更改记录器的配置并使用此代码
获得了这些结果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");
现在我想知道是否有任何解决方案可以在不干扰重命名的情况下读取这些日志文件? 或者是否有一个解决方案来配置这些工具(log4j,java.logging)以滚动大小触发器并且无需重命名文件(使用名称或其他解决方案的日期)?
感谢您的反馈