Most visited

Recently visited

Added in API level 1

MemoryHandler

public class MemoryHandler
extends Handler

java.lang.Object
   ↳ java.util.logging.Handler
     ↳ java.util.logging.MemoryHandler


Handler在内存中的循环缓冲区中缓冲请求。

通常这Handler只是简单地将传入的LogRecords存储到其内存缓冲区并丢弃较早的记录。 这种缓冲非常便宜,避免了格式化成本。 在某些触发条件下, MemoryHandler会将其当前缓冲区内容推送到目标Handler ,该目标通常会将其发布到外部世界。

有三种主要的模式来触发缓冲区的推送:

配置:默认情况下,每个MemoryHandler都使用以下LogManager配置属性进行初始化。 如果属性未定义(或者具有无效值),则使用指定的默认值。 如果没有定义默认值,则抛出RuntimeException。

Summary

Public constructors

MemoryHandler()

创建一个 MemoryHandler并根据 LogManager配置属性 对其进行配置。

MemoryHandler(Handler target, int size, Level pushLevel)

创建一个 MemoryHandler

Public methods

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

Inherited methods

From class java.util.logging.Handler
From class java.lang.Object

Public constructors

MemoryHandler

Added in API level 1
MemoryHandler ()

创建一个 MemoryHandler并根据 LogManager配置属性进行配置。

MemoryHandler

Added in API level 1
MemoryHandler (Handler target, 
                int size, 
                Level pushLevel)

创建一个 MemoryHandler

MemoryHandler基于 LogManager属性(或其默认值)进行配置,但使用了给定的 pushLevel参数和缓冲区大小参数。

Parameters
target Handler: the Handler to which to publish output.
size int: the number of log records to buffer (must be greater than zero)
pushLevel Level: message level to push on
Throws
IllegalArgumentException if size is <= 0

Public methods

close

Added in API level 1
void close ()

关闭Handler并释放所有关联的资源。 这也将关闭目标Handler

Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").

flush

Added in API level 1
void flush ()

导致目标 Handler刷新

请注意, MemoryHandler缓冲区的当前内容写出。 这需要一个“推动”。

getPushLevel

Added in API level 1
Level getPushLevel ()

获得 pushLevel

Returns
Level the value of the pushLevel

isLoggable

Added in API level 1
boolean isLoggable (LogRecord record)

检查这个 Handler是否实际上将给定的 LogRecord记录到其内部缓冲区中。

该方法检查LogRecord是否具有适当的级别以及它是否满足任何Filter 然而,它检查LogRecord是否会导致缓冲的内容“推”。 如果LogRecord为空,它将返回false。

Parameters
record LogRecord: a LogRecord
Returns
boolean true if the LogRecord would be logged.

publish

Added in API level 1
void publish (LogRecord record)

LogRecord存储在内部缓冲区中。

如果有Filter ,将调用其isLoggable方法来检查给定的日志记录是否可记录。 如果不是我们回来。 否则,给定记录被复制到内部循环缓冲区中。 然后将记录的级别属性与pushLevel进行比较。 如果给定的级别大于或等于pushLevel然后push被称为所有已缓冲的记录写入到目标输出Handler。

Parameters
record LogRecord: description of the log event. A null record is silently ignored and is not published

push

Added in API level 1
void push ()

将任何缓冲输出推送到目标 Handler

缓冲区然后被清除。

setPushLevel

Added in API level 1
void setPushLevel (Level newLevel)

设置pushLevel LogRecord被复制到我们的内部缓冲区之后,如果它的级别大于或等于pushLevel ,那么将调用push

Parameters
newLevel Level: the new value of the pushLevel
Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").

Hooray!