java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

java.util.logging
类 MemoryHandler

java.lang.Object
  继承者 java.util.logging.Handler
      继承者 java.util.logging.MemoryHandler

public class MemoryHandler
extends Handler

Handler 在内存中的循环缓冲区中对请求进行缓冲处理。

通常,此 Handler 只将传入的 LogRecords 存储到内存缓冲区,并丢弃原来的记录。此缓冲非常经济,并且避免了格式化开销。在一定的触发条件下,MemoryHandler 将其当前的缓冲区内容 push 到目标 Handler 中,此 Handler 通常将内容发布到外界。

有三种主要模型用于触发缓冲区的 push 操作:

  • 传入的 LogRecord 类型大于预先定义的 pushLevel 级别。
  • 外部类显式地调用 push 方法。
  • 如果记录符合所需的某些标准,则子类重写 log 方法,并扫描每个传入的 LogRecord,调用 push

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

  • java.util.logging.MemoryHandler.level 指定 Handler 的级别(默认为 Level.ALL)。
  • java.util.logging.MemoryHandler.filter 指定要使用的 Filter 类的名称(默认为无 Filter)。
  • java.util.logging.MemoryHandler.size 定义缓冲区的大小(默认为 1000)。
  • java.util.logging.MemoryHandler.push 定义 pushLevel(默认为 level.SEVERE)。
  • java.util.logging.MemoryHandler.target 指定目标 Handler 类的名称(无默认值)。

从以下版本开始:
1.4

构造方法摘要
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
 

构造方法详细信息

MemoryHandler

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


MemoryHandler

public MemoryHandler(Handler target,
                     int size,
                     Level pushLevel)
创建一个 MemoryHandler

除了使用给定的 pushLevel 参数和缓冲区大小参数之外,其他都按 LogManager 的属性(或默认值)进行配置 MemoryHandler

参数:
target - 将输出发布到的 Handler。
size - 缓冲区的日志记录数(必须大于 0)
pushLevel - 要 push 的消息级别。
抛出:
IllegalArgumentException - 如果 size <=0。
方法详细信息

publish

public void publish(LogRecord record)
LogRecord 存储在内部缓冲区。

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

指定者:
Handler 中的 publish
参数:
record - 日志事件的描述。忽略 null 记录,并且也不发布它。

push

public void push()
将所有已缓冲的输出 push 到目标 Handler 中。

然后清空缓冲区。


flush

public void flush()
导致目标 Handler 上的刷新。

注意,要将 MemoryHandler 缓冲区的当前内容全部写出。这样会要求进行 "push" 操作。

指定者:
Handler 中的 flush

close

public void close()
           throws SecurityException
关闭 Handler,并释放所有相关的资源。这也将关闭目标 Handler

指定者:
Handler 中的 close
抛出:
SecurityException - 如果存在安全管理器并且调用方不具有 LoggingPermission("control")

setPushLevel

public void setPushLevel(Level newLevel)
                  throws SecurityException
设置 pushLevel。将 LogRecord 复制到内部缓冲区后,如果它的级别大于或等于 pushLevel,则调用 push

参数:
newLevel - pushLevel 的新值。
抛出:
SecurityException - 如果存在安全管理器并且调用方不具有 LoggingPermission("control")

getPushLevel

public Level getPushLevel()
获得 pushLevel

返回:
pushLevel 的值。

isLoggable

public boolean isLoggable(LogRecord record)
检查此 Handler 是否实际将给定的 LogRecord 记录到其内部缓冲区。

此方法检查 LogRecord 是否有合适的级别,以及是否满足任何的 Filter。但是并检查 LogRecord 是否导致 "push" 缓冲区的内容。如果 LogRecord 为 Null,则该方法返回 false。

覆盖:
Handler 中的 isLoggable
参数:
record - 一个 LogRecord
返回:
如果记录 LogRecord,则返回 true。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策