JavaTM 2 Platform
Standard Ed. 6

java.util.logging
類別 Handler

java.lang.Object
  繼承者 java.util.logging.Handler
直接已知子類別:
MemoryHandler, StreamHandler

public abstract class Handler
extends Object

Handler 物件從 Logger 中獲取日誌資訊,並將這些資訊導出。例如,它可將這些資訊寫入終端機或檔案中,也可以將這些資訊發送到網路日誌服務中,或將其轉發到作業系統日誌中。

可通過執行 setLevel(Level.OFF) 來禁用 Handler,並可通過執行適當級別的 setLevel 來重新啟用。

Handler 類別通常使用 LogManager 屬性來設置 HandlerFilterFormatterLevel 的預設值。有關每個具體的 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()
          返回該 HandlerFormatter
 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 的日誌級別,不具有 FormatterFilter。作為 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 用於格式化該 HandlerLogRecords

某些 Handlers 不能使用 Formatters,在此情形下將記住而不是使用 Formatter

參數:
newFormatter - Formatter 將使用(不可為空)
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")

getFormatter

public Formatter getFormatter()
返回該 HandlerFormatter

返回:
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。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only