Java:如何使两个记录器写入不同的文件(Logger)

时间:2016-12-18 20:24:06

标签: java logging file-handling

我在同一个班级有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

为什么?是因为两台记录仪同时打开吗?但我不希望每次使用它们时都关闭()/创建它们。有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您必须在此处为实例设置另一个名称:

Logger logger = Logger.getLogger("MyLog");

Logger logger2 = Logger.getLogger("MyLog2");

原因Logger.getLogger("MyLog")返回记录器的实例,名称为" MyLog"或者如果不存在则创建