如何在java中使用不同的输出记录器文件?

时间:2014-01-18 15:49:41

标签: java file logging handler multipleoutputs

我想在我的gui中有两个输出记录器。此代码正确输出到每个文件。

public static void main(String[] args) {
    try {
        Handler handler = new FileHandler("OutFile.log");
        Logger.getLogger("myApp").addHandler(handler);
        Logger.getLogger("myApp").setUseParentHandlers(false);
        Handler handler2 = new FileHandler("User.log");
        handler2.setFormatter(new SimpleFormatter());
        Logger.getLogger("User").addHandler(handler2);
        Logger.getLogger("User").setUseParentHandlers(false);


        Logger.getLogger("myApp").severe("AppStarting");
        Logger.getLogger("User").severe("UserLogStarting");

但是当我在gui中测试相同的两行时,它不再起作用了。我对记录器的解释是错误的还是我做错了什么?

相反,如果我在main中使用以下行(因此我从字符串中删除了myApp),那么记录器在整个应用程序中都能正常工作,但所有内容都只转到一个文件。

    Logger.getLogger("").addHandler(handler);

P.S。如果我能提供帮助,我不想使用第三方课程。

1 个答案:

答案 0 :(得分:1)

您需要将Logger.getLogger()返回的Logger分配给Logger对象,如下所示:

Logger log = Logger.getLogger("myApp");

然后使用日志工作。否则Logger.getLogger()将始终返回一个新实例。