0

我正在尝试使用 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。我不是在两个文件中创建两个不同的记录器吗?UseLogger 中的记录器如何无法将自己与 MyLogger 中完成的记录器设置关联起来。Logger.GetLogger("") 是否必须对我的问题做些什么?我尝试阅读此内容,但我的问题仍未得到解答。

4

1 回答 1

1

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

记录器 logger = Logger.getLogger("");

And the root logger is parent of every logger. So if you have not set the logging level or handler for a particular logger it will inherit it from the parent logger recursively (if set) or from the root logger (by default).

于 2013-01-14T21:05:03.460 回答