Java子類及繼承接口
java.util.logging
類 Handler
java.lang.Object
java.util.logging.Handler
MemoryHandler, StreamHandler
public Abstract class Handlerextends ObjectHandler 對象從 Logger 中獲取日誌信息,並將這些信息導出。
例如,它可將這些信息寫入控制台或檔案中,也可以將這些信息傳送到網路日誌服務中,或將其轉發到作業系統日誌中。 可通過執行 setLevel(Level.OFF) 來禁用 Handler,並可通過執行適當級別的 setLevel 來重新啟用。
Handler 類通常使用 LogManager 屬性來設定 Handler 的 Filter、Formatter 和 Level 的默認值。有關每個具體的 Handler 類,請參閱指定的文檔。
1.4
構造方法摘要
protected Handler() 默認構造方法。
方法摘要
abstract void close() 關閉 Handler,並釋放所有相關的資源。
abstract void flush() 刷新所有的緩衝輸出。
String getEncoding() 返回該 Handler 的字元編碼。
ErrorManager getErrorManager() 獲取該 Handler 的 ErrorManager。
Filter getFilter() 獲得該 Handler 的當前 Filter。
Formatter getFormatter() 返回該 Handler 的 Formatter。
Level getLevel() 獲得用於指定該 Handler 所記錄信息的日誌級別。
boolean isLoggable(LogRecord record) 檢查該 Handler 是否實際記錄給定的 LogRecord。
abstract void publish(LogRecord record) 發布 LogRecord。
protected void reportError(String msg, Exception ex, int code) 用於向該 Handler 的 ErrorManager 報告錯誤的受保護便利方法。
void setEncoding(String encoding) 設定該 Handler 所用的字元編碼。
void setErrorManager(ErrorManager em) 為該 Handler 定義一個 ErrorManager。
void setFilter(Filter newFilter) 設定 Filter,以控制該 Handler 的輸出。
void setFormatter(Formatter newFormatter) 設定 Formatter。
void setLevel(Level newLevel) 設定日誌級別,指定該 Handler 所記錄的信息級別。
從類 java.lang.Object 繼承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
構造方法詳細信息
Handler
protected Handler()默認構造方法。得到的 Handler 具有 Level.ALL 的日誌級別,不具有 Formatter 和 Filter。作為 ErrorManager 安裝默認的 ErrorManager 實例。
方法詳細信息
publish
public abstract void publish(LogRecord record)發布 LogRecord。
最初向 Logger 對象發出的日誌請求,此請求可初始化 LogRecord 並可在此轉發這一日誌記錄。
Handler 負責在必要時進行信息格式化。 格式化應該包括本地化。
參數:
record - 日誌事件的描述。忽略 null 記錄,並且也不發布它。
--------------------------------------------------------------------------------
flush
public abstract void flush()刷新所有的緩衝輸出。
--------------------------------------------------------------------------------
close
public abstract void close()
throws SecurityException關閉 Handler,並釋放所有相關的資源。
Close 方法將執行 flush,然後關閉 Handler。調用 close 方法後,就不應再使用該 Handler。要么默認忽略方法調用,要么拋出運行時異常。
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
setFormatter
public void setFormatter(Formatter newFormatter)
throws SecurityException設定 Formatter。將該 Formatter 用於格式化該 Handler 的 LogRecords。
某些 Handlers 不能使用 Formatters,在此情形下將記住而不是使用 Formatter。
參數:
newFormatter - Formatter 將使用(不可為空)
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
getFormatter
public Formatter getFormatter()返回該 Handler 的 Formatter。
返回:
Formatter(可以為空)。
--------------------------------------------------------------------------------
setEncoding
public void setEncoding(String encoding)
throws SecurityException,
UnsupportedEncodingException設定該 Handler 所用的字元編碼。
應在將任何 LogRecords 寫入 Handler 之前設定編碼。
參數:
encoding - 所支持字元編碼的名稱。可以為空,以表明應為默認平台編碼。
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
UnsupportedEncodingException - 如果不支持指定的編碼。
--------------------------------------------------------------------------------
getEncoding
public String getEncoding()返回該 Handler 的字元編碼。
返回:
編碼名稱。可以為空,以表明應使用默認編碼。
--------------------------------------------------------------------------------
setFilter
public void setFilter(Filter newFilter)
throws SecurityException設定 Filter,以控制該 Handler 的輸出。
對於 publish 的每個調用,Handler 將調用該 Filter (如果不為空),以檢查是否應發布或放棄 LogRecord。
參數:
newFilter - Filter 對象(可以為空)
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
getFilter
public Filter getFilter()獲得該 Handler 的當前 Filter。
返回:
Filter 對象(可以為空)
--------------------------------------------------------------------------------
setErrorManager
public void setErrorManager(ErrorManager em)為該 Handler 定義一個 ErrorManager。
如果使用該 Handler 時發生任何錯誤,將調用 ErrorManager 的 "error" 方法。
參數:
em - 新的 ErrorManager
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
getErrorManager
public ErrorManager getErrorManager()獲取該 Handler 的 ErrorManager。
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
reportError
protected void reportError(String msg,
Exception ex,
int code)用於向該 Handler 的 ErrorManager 報告錯誤的受保護便利方法。注意,該方法無需進行安全檢查即可獲取和使用 ErrorManager。因此,可在調用者無特權的環境下使用該方法。
參數:
msg - 描述性字元串(可以為空)
ex - 異常(可以為空)
code - 在 ErrorManager 中定義的錯誤代碼
--------------------------------------------------------------------------------
setLevel
public void setLevel(Level newLevel)
throws SecurityException設定日誌級別,指定該 Handler 所記錄的信息級別。將丟棄低於該值的信息級別。
其目的在於允許開發人員打開大多數日誌,但是限制將信息傳送到特定 Handlers。
參數:
newLevel - 日誌級別的新值
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
--------------------------------------------------------------------------------
getLevel
public Level getLevel()獲得用於指定該 Handler 所記錄信息的日誌級別。將丟棄低於該值的信息級別。
返回:
正在記錄的信息級別。
--------------------------------------------------------------------------------
isLoggable
public boolean isLoggable(LogRecord record)檢查該 Handler 是否實際記錄給定的 LogRecord。
該方法檢查 LogRecord 是否具有適當的 Level,以及是否滿足任何 Filter。它也可進行其他 Handler 特定的檢查,以防處理程式記錄 LogRecord。如果 LogRecord 為 Null,將返回 False。
參數:
record - 一個 LogRecord
返回:
如果要記錄 LogRecord,則返回 true。