|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。