【发布时间】:2016-12-18 20:24:05
【问题描述】:
我在同一个班级有 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()/创建它们。有更好的解决方案吗?
【问题讨论】:
-
log4j 和 java.util.logging.Logger 的工作方式相同吗?
标签: java logging file-handling