gpt4 book ai didi

Java记录器执行方法

转载 作者:行者123 更新时间:2023-11-30 11:32:56 24 4
gpt4 key购买 nike

我编写了如下方法来检查记录器的工作功能,

package test;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
public class test1{
private static Logger logger = Logger.getLogger(test1.class);
public static void main(String args[])
{
System.out.println("time 1 "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());
System.out.println("time 2 "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());
logger.log(Level.INFO,"Eror "+System.currentTimeMillis());

System.out.println("time 3 "+System.currentTimeMillis());
System.out.println("time 4 "+System.currentTimeMillis());
System.out.println("time 5 "+System.currentTimeMillis());
}

}

我得到如下输出,

time 1 1367325027239
time 2 1367325027247
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027239
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027247
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027248
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027249
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027250
Apr 30, 2013 6:00:27 PM test.test1 main
INFO: Eror 1367325027250
time 3 1367325027251
time 4 1367325027251
time 5 1367325027251

我的问题是,程序控制会等到记录器完成它的过程吗

(即根据配置将消息写入日志文件),

或者logger将控制权交还给调用代码后独立执行。

(从上面的代码可以看出logger需要一定的时间,但我的想法是在那段时间内无法完成文件操作)

最佳答案

是的,日志记录“阻止”程序流的执行,直到日志记录完成。您可以使用 visualvm分析使用和不使用记录器的线程数,看看记录器是否可以异步实现。不要被每次都启动的守护线程激怒。

通常记录器和所有其他文件写入器都使用缓冲区来加速写入。通过将内容写入缓冲区并稍后将其刷新到目的地,可以节省执行时间。

关于Java记录器执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com