package com.demon.test.testlogger;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TestLevel {
public static void main(String[] args) {
Logger logger = Logger.getGlobal();
logger.setLevel(Level.ALL);
logger.log(Level.FINEST, "FINEST");
logger.log(Level.FINER, "FINER");
logger.log(Level.FINE, "FINE");
logger.log(Level.CONFIG, "CONFIG");
logger.log(Level.INFO, "INFO");
logger.log(Level.WARNING, "WARNING");
logger.log(Level.SEVERE, "SEVERE");
}
}
執(zhí)行以上代碼柜候,我們的預(yù)期是在控制臺打印以下信息
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
非常詳細(xì): FINEST
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
較詳細(xì): FINER
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
詳細(xì): FINE
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
配置: CONFIG
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
信息: INFO
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
警告: WARNING
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
嚴(yán)重: SEVERE
但是實際上在控制臺打印結(jié)果是:
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
信息: INFO
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
警告: WARNING
十二月 20, 2017 3:19:48 下午 com.demon.test.testlogger.TestLevel main
嚴(yán)重: SEVERE
出現(xiàn)這種原因是因為 java.util.logging.Logger
默認(rèn)讀取的配置文件 jre\lib\logging.properties
默認(rèn)配置一個java.util.logging.ConsoleHandler
肯适,級別為INFO
#java.util.logging.ConsoleHandler.level = INFO
#java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
把這個配置注釋掉之后崇堰,自定義一個 java.util.logging.ConsoleHandler
,就可以在控制臺里面為所欲為了乍构。
如果不注釋掉系統(tǒng)默認(rèn)的 ConsoleHandler 个束,自定義一個ConsoleHandler 的時候,效果相當(dāng)于有兩個ConsoleHandler 躬络,INFO級別以上的日志會在控制臺打印兩次尖奔。
Java內(nèi)置Logger相關(guān)可以看這篇文章: Java內(nèi)置Logger詳解