我在同一类中有2个记录器,以下设置:
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
。
我的问题是,即使我只调用一个记录器,例如logger2.log(Level.INFO, "msg2")
。
为什么?是因为两个登录机都同时开放吗?但是我不想每次使用它们时都会.close()/创建它们。有更好的解决方案吗?
您必须在此处为实例设置另一个名称:
Logger logger = Logger.getLogger("MyLog");
Logger logger2 = Logger.getLogger("MyLog2");
导致Logger.getLogger("MyLog")
返回带有名称" mylog"的记录器的实例,或者如果不存在(如果不存在)