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



我在同一类中有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();  
}  

logger2fh2MyLogFile2.log

我的问题是,即使我只调用一个记录器,例如logger2.log(Level.INFO, "msg2")

为什么?是因为两个登录机都同时开放吗?但是我不想每次使用它们时都会.close()/创建它们。有更好的解决方案吗?

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

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

导致Logger.getLogger("MyLog")返回带有名称" mylog"的记录器的实例,或者如果不存在(如果不存在)

最新更新