天天看點

JDK原生日志庫JUL

JUL 為Java util loging 的縮寫

其中的代碼也主要位于該包之下

JDK原生日志庫JUL

 JUL主要劃分為幾個部分

LogMannager: 我們需要通過該類來加載配置檔案中的配置  

Logger 代碼中擁戴的日志記錄器 

Handler/appenders   日志控制器 

Layouts/Formatters   格式化 

Filter 是一個函數式程式設計接口 傳回true 表示通過

Level 日志級别  枚舉 包括 

SEVERE 
WARNING
INFO
CONFIG
FINE
FINER
FINEST        

ErrorManager 為handler提供的一個異常處理器

LogRecord  包裝的日志記錄 

配置檔案配置

# JUL 日志配置
####
#### 注意設定 日志級别時 需要同時設定 logger 與handler 的日志級别
####

###################   設定logger
## RootLogger處理器(名稱為"")
#handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler
# RootLogger日志等級
#.level= INFO


#自定義logger
com.gavin2.handlers=java.util.logging.FileHandler
com.gavin2.level=CONFIG
# 如果不設定會繼承父LOGGER的
#關閉預設配置
com.gavin2.useParentHandlers=false

## TestLog日志處理器
TestLog.handlers= java.util.logging.FileHandler
# TestLog日志等級
TestLog.level= ALL
# 忽略父日志處理
TestLog.useParentHandlers=false

################### 設定handler
## 控制台處理器
# 輸出日志級别
java.util.logging.ConsoleHandler.level = INFO
# 輸出日志格式
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8


## 檔案處理器
# 輸出日志級别a
java.util.logging.FileHandler.level=CONFIG
# 輸出日志格式
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
# 輸出日志檔案路徑
java.util.logging.FileHandler.pattern = H:\\log\\testLog.log
# 輸出日志檔案限制大小(50000位元組)
java.util.logging.FileHandler.limit = 5000
# 輸出日志檔案限制個數
java.util.logging.FileHandler.count = 10
# 輸出日志檔案 是否是追加
java.util.logging.FileHandler.append=true



           

程式中的使用

@Test
    public void slfLogTest() throws IOException {
        //LogMannager 讀取并加載配置資訊(加載一次即可)
        LogManager logManager = LogManager.getLogManager();
        InputStream in = JULtestLog.class.getClassLoader().getResourceAsStream("log.properties");
        logManager.readConfiguration(in);
        //擷取logger對象
        Logger logger = Logger.getLogger("com.gavin2");
        //記錄日志
        logger.warning("com.gavin2:warning");
        logger.info("com.gavin2:info");
        logger.config("com.gavin2:config");

    }
           

繼續閱讀