0

我试图在我的 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 中测试相同的两行时,它不再起作用了。我对记录器的解释是错误的还是我做错了什么?

相反,如果我在主目录中使用以下行(所以我从字符串中删除了 myApp),那么记录器在整个应用程序中都能完美运行,但所有内容都只保存到一个文件中。

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

PS,如果可以的话,我不想使用第三方课程。

4

1 回答 1

1

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

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

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

于 2014-01-18T16:12:43.683 回答