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!