|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.logging.Handler java.util.logging.MemoryHandler
public class MemoryHandler
Handler 在記憶體中的循環緩衝區中對請求進行緩衝處理。
通常,此 Handler 只將傳入的 LogRecords 存儲到記憶體緩衝區,並丟棄原來的記錄。此緩衝非常經濟,並且避免了格式化開銷。在一定的觸發條件下,MemoryHandler 將其當前的緩衝區內容 push 到目標 Handler 中,此 Handler 通常將內容發佈到外界。
有三種主要模型用於觸發緩衝區的 push 操作:
配置:預設情況下,使用以下 LogManager 配置屬性初始化每個 MemoryHandler。如果沒有定義該屬性(或者有無效的值),則使用指定的預設值。如果沒有定義預設值,則拋出 RuntimeException。
建構子摘要 | |
---|---|
MemoryHandler()
根據 LogManager 配置屬性創建一個 MemoryHandler,並對其進行配置。 |
|
MemoryHandler(Handler target,
int size,
Level pushLevel)
創建一個 MemoryHandler。 |
方法摘要 | |
---|---|
void |
close()
關閉 Handler,並釋放所有相關的資源。 |
void |
flush()
導致目標 Handler 上的刷新。 |
Level |
getPushLevel()
獲得 pushLevel。 |
boolean |
isLoggable(LogRecord record)
檢查此 Handler 是否實際將給定的 LogRecord 記錄到其內部緩衝區。 |
void |
publish(LogRecord record)
將 LogRecord 存儲在內部緩衝區。 |
void |
push()
將所有已緩衝的輸出 push 到目標 Handler 中。 |
void |
setPushLevel(Level newLevel)
設置 pushLevel。 |
從類別 java.util.logging.Handler 繼承的方法 |
---|
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public MemoryHandler()
public MemoryHandler(Handler target, int size, Level pushLevel)
除了使用給定的 pushLevel 參數和緩衝區大小參數之外,其他都按 LogManager 的屬性(或預設值)進行配置 MemoryHandler。
target
- 將輸出發佈到的 Handler。size
- 緩衝區的日誌記錄數(必須大於 0)pushLevel
- 要 push 的訊息級別。
IllegalArgumentException
- 如果 size <=0。方法詳細資訊 |
---|
public void publish(LogRecord record)
如果有 Filter,則調用其 isLoggable 方法以檢查給定的日誌記錄是否為 loggable。如果不是,則返回它。否則,將給定的記錄複製到內部循環緩衝區。然後將該記錄的級別屬性與 pushLevel 進行比較。如果給定的級別大於等於 pushLevel,則調用 push 將所有已緩衝的記錄寫入到目標輸出 Handler 中。
Handler
中的 publish
record
- 日誌事件的描述。忽略 null 記錄,並且也不發佈它。public void push()
然後清空緩衝區。
public void flush()
注意,不要將 MemoryHandler 緩衝區的當前內容全部寫出。這樣會要求進行 "push" 操作。
Handler
中的 flush
public void close() throws SecurityException
Handler
中的 close
SecurityException
- 如果存在安全管理器並且調用者不具有 LoggingPermission("control")。public void setPushLevel(Level newLevel) throws SecurityException
newLevel
- pushLevel 的新值。
SecurityException
- 如果存在安全管理器並且調用者不具有 LoggingPermission("control")。public Level getPushLevel()
public boolean isLoggable(LogRecord record)
此方法檢查 LogRecord 是否有合適的級別,以及是否滿足任何的 Filter。但是並不檢查 LogRecord 是否導致 "push" 緩衝區的內容。如果 LogRecord 為 Null,則該方法返回 false。
Handler
中的 isLoggable
record
- 一個 LogRecord。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。