複製鏈接
請複製以下鏈接發送給好友

handler類

鎖定
handler類,是計算機用語,是Java子類及繼承接口
中文名
handler類
java.
Java子類及繼承接口
直接已知子類
MemoryHandler,StreamHandler
構造方法摘要
protected Handler()

handler類Java子類及繼承接口

java.util.logging
類 Handler
java.lang.Object
java.util.logging.Handler

handler類直接已知子類

MemoryHandler, StreamHandler
public abstract class Handlerextends ObjectHandler 對象從 Logger 中獲取日誌信息,並將這些信息導出。
例如,它可將這些信息寫入控制枱或文件中,也可以將這些信息發送到網絡日誌服務中,或將其轉發到操作系統日誌中。 可通過執行 setLevel(Level.OFF) 來禁用 Handler,並可通過執行適當級別的 setLevel 來重新啓用。
Handler 類通常使用 LogManager 屬性來設置 Handler 的 Filter、Formatter 和 Level 的默認值。有關每個具體的 Handler 類,請參閲指定的文檔。

handler類從以下版本開始

1.4

handler類構造方法摘要

protected Handler() 默認構造方法

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類構造方法詳細信息

Handler
protected Handler()默認構造方法。得到的 Handler 具有 Level.ALL 的日誌級別,不具有 Formatter 和 Filter。作為 ErrorManager 安裝默認的 ErrorManager 實例。

handler類方法詳細信息

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。 [1] 
參考資料