JDK日志框架介紹及其主要功能淺析
JDK日志框架是什么?JDK日志框架主要功能又是什么呢?JDK日志記錄對于軟件的維護特別是對于已部署到運行環境之后的軟件調試都有著重要的意義。本文介紹了 JDK的日志框架,以及如何根據不同需求自定義日志處理、消息格式化、消息級別等組件。***闡述了如何利用日志框架的擴展能力將Java 程序能夠通過 STAF(Software Testing Automation Framework,一種自動化測試框架)日志服務來進行監視。
自 Java 1.4 開始,JDK包括了一個嶄新的日志框架包 java.util.logging,該日志框架設計精良,和 JDK緊密結合,控制靈活,使用簡單。日志記錄對于軟件的維護特別是對于已部署到運行環境之后的軟件調試都有著重要的意義。在實際的項目中,往往還需要比該框架所提供的更為復雜的日志功能。對于這種需求,JDK日志框架具有足夠的可擴展能力,可以自定義不同需求的日志處理、消息格式化、日志消息級別等組件。在下面的內容中,本文將介紹了如何擴展 JDK日志框架,自定義日志處理方式。并就一個實際的例子來介紹如何結合 JDK日志框架和 STAF(Software Testing Automation Framework,一種自動化測試框架)日志服務來對 java 程序進行監視。
JDK日志框架介紹
JDK的日志框架即 java.util.logging 包。對于一個軟件的日志系統而言,首先必須得有一個日志對象,該對象負責記錄日志信息。同時該信息可以輸出到不同的位置,例如控制臺,文件甚至網絡中。對于信息的格式,則可以根據不同的需求,可以輸出成普通文本,XML 或者 Html 的格式。同時還需要對日志信息進行不同級別的分類,這樣的好處是可以過濾冗余信息,只保留關鍵的日志。對于一個日志框架而言,日志對象必須是可配置的,它可以按照配置來輸出到指定的目標,同時按照配置來決定輸出的格式和決定何種級別以上的日志才能輸出。配置的形式還可以是多種多樣的,既能是代碼的形式,也能是配置文件的形式。尤其是配置文件的形式,對于一個已經部署到運行環境中的軟件而言,可以非常方便的改變日志配置而無需改變其源代碼。
JDK日志框架提供了上述的所有功能。它主要包括如下幾個部件:
◆Logger:日志記錄對象。用于記錄日志信息。
◆Handler:用于處理日志信息的輸出。在 Handler 類中,可以決定日志是輸出到文件中還是控制臺中。
◆Filter: 用于過濾日志。在 Filter 類中,可以根據日志級別或者某種條件來決定是否輸出該日志。這樣達到去除冗余信息的目的。
◆Formatter:用于格式化日志信息。該類可以將日志文本格式化成 XML 或者 Html 的格式,這完全依賴于具體的實現。
◆Level:用于表示日志的級別。 JDK日志框架默認有如下級別 : SEVERE,WARNING,INFO,CONFIG,FINE,FINER,FINEST 。
對于程序而言,它的 Logger 對象首先會判斷日志的級別是否滿足輸出級別的要求,然后將滿足級別要求的日志消息交給所配置的 Handler 對象來處理,如果日志對象配置了一個 Filter 對象,那么 Filter 對象將會對日志信息做一次過濾。 Handler 對象接受到日志消息后,根據其所配置的格式化類 Formatter 來改變日志的格式,根據所配置的 Filter 對象和 Level 對象來再次過濾日志信息,***輸出到該種 Handler 對象所指定的輸出位置中,該輸出位置可以是控制臺,文件,網絡 socket 甚至是內存緩沖區。
JDK 提供了如下幾種默認支持的 Handler 類:
◆ConsoleHandler: 輸出日志到控制臺中
◆FileHandler:輸出日志到指定文件中
◆MemoryHandler:輸出日志到內存緩沖區中,當一定的條件滿足的時候(如某種關鍵字的日志信息)再將緩沖區中的日志輸出
◆SocketHandler: 輸出日志到網絡 socket 中
◆StreamHandler: 輸出日志到輸入輸出流對象中
JDK日志框架的相關介紹就到這里,對于JDK日志框架的使用要在實踐中多加學習糾正,同時 JDK日志框架也不失其靈活性,你可以定制自己所需要的 Handler,我們在以后的文章中將會介紹到。
【編輯推薦】




















