今天看项目代码,发现一个Logger的用法,包含在util包里面。
所以就是java.util.logging.Logger;
Logger的四个级别分别是:
- SEVERE(最高值)
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST(最低值)
- 还有一个级别是OFF,就是关闭所有的日志记录,还有一个级别是ALL,是记录所有的记录。
- logger会显示所有比当前级别高的等级的所有信息。看代码:
import java.io.IOException; import java.util.logging.*; public class TestLogger { public static void main(String args[]) throws IOException { Logger log = Logger.getLogger("hello"); log.setLevel(Level.INFO); Logger log1 = Logger.getLogger("hello"); System.out.println(log==log1); Logger log2 =Logger.getLogger("hello world"); log2.setLevel(Level.INFO); ConsoleHandler consoleHandler = new ConsoleHandler(); consoleHandler.setLevel(Level.ALL); consoleHandler.setFormatter(new MyLogHander()); log.addHandler(consoleHandler); FileHandler fileHandler = new FileHandler("C:/testlog%g.log"); fileHandler.setLevel(Level.ALL); log2.addHandler(fileHandler); fileHandler.setFormatter(new MyLogHander()); log.info("aaa"); log1.info("bbb"); log2.warning("fine"); } } class MyLogHander extends Formatter { public String format(LogRecord logRecord) { return logRecord.getLevel()+":"+logRecord.getMessage()+"\n"; } }
执行结果就是:
因为控制台的信息是默认就会有的,所以会输出两遍,这样就可以看出Logger会输出所有比当前等级高的所有的信息。