创建了2个记录器。它们如何关联?

时间:2013-01-14 17:55:43

标签: java java.util.logging

我正在尝试使用java.utils.logging ..我有两个文件MyLogger和UseLogger.MyLogger用文件处理程序设置记录器。 UseLogger写入日志。 这是两个文件..

package UtilsLogging;

import java.util.logging.Level;
import java.util.logging.Formatter;
import java.util.logging.SimpleFormatter;
import java.util.logging.Logger;
import java.util.logging.FileHandler;
import java.io.IOException;

/* Setting the logger up.
 * Create logger,define its level.
 * Create a file handler,mention the formatter,add handler to the logger
 */

public class MyLogger {

    static private SimpleFormatter sf;
    static private FileHandler txtLogFile;

    public static void setup() throws IOException{
        Logger logger = Logger.getLogger("");
        logger.setLevel(Level.INFO);
        sf = new SimpleFormatter();

        txtLogFile = new FileHandler("mytxtlog.txt");
        txtLogFile.setFormatter(sf);
        logger.addHandler(txtLogFile);
    }

}

package UtilsLogging;

import java.io.IOException;
import java.util.logging.Logger;
import java.util.logging.Level;

public class UseLogger {

    private static final Logger lgr = Logger.getLogger(MyLogger.class.getName());

    public void writeToLog(){
    lgr.setLevel(Level.SEVERE);
    lgr.info("info1");

    lgr.setLevel(Level.INFO);
    lgr.severe("severe2");

    }

    public static void main(String[] args){
        UseLogger ul = new UseLogger();
        try{
            MyLogger.setup();
        }
        catch(IOException ie){
            ie.printStackTrace();
        }

        ul.writeToLog();
    }
}

我不明白的是这个......在调用MyLogger.setup()之后,我说ul.writeToLog()正在写入文件mytxtlog.txt。我没有在两个文件中创建两个不同的记录器.HowetLogger中的记录器如何能够将自己与MyLogger中完成的记录器设置相关联.Logger.GetLogger(“”)是否必须对我的问题做些什么? 我试过阅读这个,但我的问题仍然没有答案..

1 个答案:

答案 0 :(得分:1)

以下调用为您提供了根记录器。

Logger logger = Logger.getLogger(“”);

根记录器是每个记录器的父级。因此,如果您没有为特定记录器设置日志记录级别或处理程序,它将以递归方式(如果设置)或从根记录器(默认情况下)从父记录器继承它。