public class MemoryHandler extends Handler
通常这Handler简单存储输入LogRecords到内存缓冲区和抛弃以前的记录。这种缓冲是非常便宜的,并避免格式化成本。在一定的触发条件,该MemoryHandler将推出其当前缓冲区的内容到目标Handler,这通常会将它们发布到外面的世界。
触发缓冲区的一个主要模型有三种:
配置:默认情况下每个MemoryHandler是使用下面的LogManager配置属性,<handler-name>指的完全限定类名初始化的处理程序。如果没有定义属性(或有无效的值),则使用指定的默认值。如果没有默认值定义然后抛出RuntimeException。
例如,对于MemoryHandler
性能会:
对于自定义处理程序,例如com.foo.myhandler,性能会:
Constructor and Description |
---|
MemoryHandler()
创建一个
MemoryHandler和配置基于
LogManager配置属性。
|
MemoryHandler(Handler target, int size, Level pushLevel)
创建一个
MemoryHandler。
|
Modifier and Type | Method and Description |
---|---|
void |
close()
关闭
Handler和释放所有相关资源。
|
void |
flush()
对目标造成
Handler冲洗。
|
Level |
getPushLevel()
得到
pushLevel。
|
boolean |
isLoggable(LogRecord record)
看看这
Handler实际上日志给
LogRecord进入其内部缓冲区。
|
void |
publish(LogRecord record)
存储在内部缓冲区
LogRecord。
|
void |
push()
将任何缓冲输出到目标
Handler。
|
void |
setPushLevel(Level newLevel)
设置
pushLevel。
|
getEncoding, getErrorManager, getFilter, getFormatter, getLevel, reportError, setEncoding, setErrorManager, setFilter, setFormatter, setLevel
public MemoryHandler()
public MemoryHandler(Handler target, int size, Level pushLevel)
的MemoryHandler配置基于LogManager性质(或默认值)除了给pushLevel参数和缓冲区的大小参数的使用。
target
的处理程序,发布输出。
size
-日志记录数缓冲区(必须大于零)
pushLevel
消息层面推进
size is <= 0
IllegalArgumentException
public void publish(LogRecord record)
如果有一个Filter,其isLoggable方法来检查提供的日志记录Loggable。如果不是我们回来。否则,给定的记录被复制到一个内部循环缓冲区中。然后记录的属性与pushLevel相比。如果给定的水平大于或等于pushLevel然后push来写所有的缓冲记录目标输出Handler。
public void push()
然后清除缓冲区。
public void flush()
需要注意的是,MemoryHandler缓冲区的当前内容不写出来。这就需要一个“推”。
public void close() throws SecurityException
close
方法重写,继承类
Handler
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将导致一个“推”的缓冲区的内容。如果是空的LogRecord返回false。
isLoggable
方法重写,继承类
Handler
record
-
LogRecord
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.