JavaTM 2 Platform
Standard Ed. 6

java.util.logging
類別 StreamHandler

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

public class StreamHandler
extends Handler

基於串流的日誌 Handler

此類別主要作為基礎類別,或支持實作其他日誌 Handlers 所用的類別。

LogRecords 發佈到給定 java.io.OutputStream

配置:預設情況下,每個 SocketHandler 都是使用以下 StreamHandler 配置屬性執行初始化的。如果未定義屬性(或者屬性具有無效值),則使用指定的預設值。

從以下版本開始:
1.4

建構子摘要
StreamHandler()
          創建不帶當前輸出串流的 StreamHandler
StreamHandler(OutputStream out, Formatter formatter)
          創建帶給定 Formatter 和輸出串流的 StreamHandler
 
方法摘要
 void close()
          關閉當前輸出串流。
 void flush()
          刷新所有緩衝訊息。
 boolean isLoggable(LogRecord record)
          檢查該 Handler 是否實際記錄給定的 LogRecord
 void publish(LogRecord record)
          格式化共時布 LogRecord
 void setEncoding(String encoding)
          設置(或更改)該 Handler 所用的字元編碼。
protected  void setOutputStream(OutputStream out)
          更改輸出串流。
 
從類別 java.util.logging.Handler 繼承的方法
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setErrorManager, setFilter, setFormatter, setLevel
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

StreamHandler

public StreamHandler()
創建不帶當前輸出串流的 StreamHandler


StreamHandler

public StreamHandler(OutputStream out,
                     Formatter formatter)
創建帶給定 Formatter 和輸出串流的 StreamHandler

參數:
out - 目標輸出串流
formatter - 用於格式化輸出的 Formatter
方法詳細資訊

setOutputStream

protected void setOutputStream(OutputStream out)
                        throws SecurityException
更改輸出串流。

如果存在當前輸出串流,則編寫 Formatter 的尾部字元串,刷新並關閉串流。然後使用新的輸出串流替換該輸出串流。

參數:
out - 新輸出串流。不能為 null。
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")

setEncoding

public void setEncoding(String encoding)
                 throws SecurityException,
                        UnsupportedEncodingException
設置(或更改)該 Handler 所用的字元編碼。

應在在任何 LogRecords 寫入 Handler 之前設置編碼。

覆寫:
類別 Handler 中的 setEncoding
參數:
encoding - 所支持字元編碼的名稱。可以為 null,以指示預設的平臺編碼。
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")
UnsupportedEncodingException - 如果不支持指定的編碼。

publish

public void publish(LogRecord record)
格式化共時布 LogRecord

StreamHandler 首先檢查是否存在 OutputStream 以及給定的 LogRecord 是否具有所需的最低日誌級別。如果沒有則預設返回。如果有,則調用所有關聯的 Filter 來檢查是否應該發佈該記錄。如果應該發佈,則調用 Formatter 來格式化該記錄,然後將結果寫入當前輸出串流。

如果這是要寫入給定 OutputStream 的第一個 LogRecord,則在寫入 LogRecord 之前首先將 Formatter 的“頭部”字元串寫入串流。

指定者:
類別 Handler 中的 publish
參數:
record - 對日誌事件的描述。預設忽略 null 記錄,並且不進行發佈。

isLoggable

public boolean isLoggable(LogRecord record)
檢查該 Handler 是否實際記錄給定的 LogRecord

該方法檢查 LogRecord 是否具有適當的級別,以及是否滿足所有 Filter。如果尚未分派任何輸出串流或 LogRecord 為 Null,則返回 false。

覆寫:
類別 Handler 中的 isLoggable
參數:
record - 一個 LogRecord
返回:
如果要記錄 LogRecord,則返回 true。

flush

public void flush()
刷新所有緩衝訊息。

指定者:
類別 Handler 中的 flush

close

public void close()
           throws SecurityException
關閉當前輸出串流。

在關閉前,將 Formatter 的“尾部”字元串寫入串流。此外,如果尚未將 Formatter 的“頭部”字元串寫入串流,則將其寫入“尾部”字元串之前。

指定者:
類別 Handler 中的 close
拋出:
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。
SecurityException - 如果存在安全管理器,且調用者不具有 LoggingPermission("control")。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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