我在同一个班级有2个记录器,设置如下:
node: {
net: 'empty',
tls: 'empty',
dns: 'empty'
}
第二个记录器的设置方式与Logger logger = Logger.getLogger("MyLog");
FileHandler fh;
try {
// This block configure the logger with handler and formatter
fh = new FileHandler("C:/temp/test/MyLogFile.log");
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
// the following statement is used to log any messages
logger.info("My first log");
} catch (SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
和logger2
以及fh2
相同。
我的问题是每当记录器记录时,两个文件都被写入,即使我只调用一个记录器,例如MyLogFile2.log
。
为什么?是因为两台记录仪同时打开吗?但我不希望每次使用它们时都关闭()/创建它们。有更好的解决方案吗?
答案 0 :(得分:1)
您必须在此处为实例设置另一个名称:
Logger logger = Logger.getLogger("MyLog");
Logger logger2 = Logger.getLogger("MyLog2");
原因Logger.getLogger("MyLog")
返回记录器的实例,名称为" MyLog"或者如果不存在则创建