gpt4 book ai didi

java - 使用静态记录器打印元素是否会创建具有相同内容的多个文件?

转载 作者:行者123 更新时间:2023-12-01 14:20:25 24 4
gpt4 key购买 nike

我使用记录器来查看元素的值,现在我可以看到我的应用程序需要更多时间来启动,并且当我看到日志时,预期的文件已创建超过 100 次。

元素是否打印在每个文件中?是什么导致了这种行为?

如果我们使用静态变量并且该变量被应用程序中的许多方法使用,那么对于每个方法都会创建一个文件!但我知道静态变量作为用于所有访问对象的单个值??

记录器的声明是

 private static Logger telog = Logger.getLogger(XMLCIMHandler.class.getName());
FileHandler fh;

初始化是

try {
File file = new File("C:\\TElogs");
boolean b = file.mkdir();
fh = new FileHandler("C:\\TElogs\\TElogs%u.%g.log",
1000000, 10);
telog.addHandler(fh);
telog.setUseParentHandlers(false);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
} catch (Exception e) {
Writer writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
e.printStackTrace(printWriter);
String s = writer.toString();
telog.info(" "+ s);
}

并打印我使用的元素TElog.info(element);请解释一下...提前致谢

最佳答案

问题可能是因为您在构造函数中初始化了记录器。这意味着该类的每个实例都会创建一个新文件。

您需要在 static initialization block 中对其进行初始化,或者在初始化之前检查它是否已经初始化。

关于java - 使用静态记录器打印元素是否会创建具有相同内容的多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630191/

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