2013-01-14 35 views
0

我想使用java.utils.logging ..我有这两个文件MyLogger和UseLogger.MyLogger设置记录器与文件处理程序.. UseLogger写入日志。 这里有两个文件...2 loggers创建。他们如何关联?

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(); 
    } 
} 

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

回答

1

下面的调用给你的根记录器。

Logger logger = Logger.getLogger(“”);

而根记录器是每个记录器的父项。所以如果你没有为特定的记录器设置日志记录级别或处理器,它将递归地(如果设置)或从根记录器(默认情况下)从父记录器继承它。

+0

YEs.thats正确..以后发现一个有趣的记录器层次结构的文章http://tutorials.jenkov.com/java-logging/logger-hierarchy.html –

+0

这是一个很好的教程,谢谢Anusha。 –