Most visited

Recently visited

Added in API level 1

LogManager

public class LogManager
extends Object

java.lang.Object
   ↳ java.util.logging.LogManager


有一个全局LogManager对象用于维护一组关于Loggers和Log服务的共享状态。

这个LogManager对象:

全局LogManager对象可以使用LogManager.getLogManager()来检索。 LogManager对象是在类初始化期间创建的,不能随后进行更改。

在启动时,LogManager类使用java.util.logging.manager系统属性进行定位。

默认情况下,LogManager从JRE目录中的属性文件“lib / logging.properties”中读取其初始配置。 如果您编辑该属性文件,则可以更改该JRE所有用途的默认日志记录配置。

另外,LogManager使用两个可选的系统属性,可以更多地控制读取初始配置:

These two properties may be set via the Preferences API, or as command line property definitions to the "java" command, or as system property definitions passed to JNI_CreateJavaVM.

如果设置了“java.util.logging.config.class”属性,则属性值将被视为类名。 给定的类将被加载,一个对象将被实例化,并且该对象的构造函数负责在初始配置中进行读取。 (该对象可以使用其他系统属性来控制其配置。)备用配置类可以使用readConfiguration(InputStream)在LogManager中定义属性。

如果设置“java.util.logging.config.class”属性,则可以使用“java.util.logging.config.file”系统属性指定属性文件(采用java.util.Properties格式)。 将从该文件读取初始日志记录配置。

如果没有定义这些属性,则如上所述,LogManager将从JRE目录中的属性文件“lib / logging.properties”中读取其初始配置。

记录器和处理程序的属性将具有以处理程序或记录器的点分隔名称开头的名称。

全局日志记录属性可能包括:

请注意,在LogManager配置期间加载的所有类首先在任何用户类路径之前的系统类路径中进行搜索。 这包括LogManager类,任何配置类和任何处理程序类。

记录器根据它们的点分隔名称被组织到命名层次结构中。 因此“abc”是“ab”的孩子,但是“a.b1”和a.b2“是同伴。

假设名称以“.level”结尾的所有属性都定义了记录器的日志级别。 因此,“foo.level”为名为“foo”的记录器定义了一个日志级别,并且(针对命名层次结构中的任何子级)递归地定义了该日志级别。 日志级别按照它们在属性文件中定义的顺序进行应用。 因此树中的子节点的级别设置应该在其父母的设置之后。 属性名称“.level”可用于设置树的根级别。

LogManager对象上的所有方法都是多线程安全的。

Summary

Constants

String LOGGING_MXBEAN_NAME

记录工具的管理界面的 ObjectName字符串表示。

Protected constructors

LogManager()

受保护的构造函数。

Public methods

boolean addLogger(Logger logger)

添加一个指定的记录器。

void addPropertyChangeListener(PropertyChangeListener l)

添加要重新读取日志记录属性时要调用的事件侦听器。

void checkAccess()

检查当前上下文是否可信,以修改日志记录配置。

static LogManager getLogManager()

返回全局LogManager对象。

Logger getLogger(String name)

找到指定记录器的方法。

Enumeration<String> getLoggerNames()

获取已知记录器名称的枚举。

static LoggingMXBean getLoggingMXBean()

用于管理记录器的退货 LoggingMXBean

String getProperty(String name)

获取日志记录属性的值。

void readConfiguration()

重新初始化日志记录属性并重新读取日志记录配置。

void readConfiguration(InputStream ins)

重新初始化日志记录属性并重新读取来自给定流的日志配置,应该使用java.util.Properties格式。

void removePropertyChangeListener(PropertyChangeListener l)

删除属性更改事件的事件侦听器。

void reset()

重置日志配置。

Inherited methods

From class java.lang.Object

Constants

LOGGING_MXBEAN_NAME

Added in API level 1
String LOGGING_MXBEAN_NAME

日志工具管理界面的 ObjectName字符串表示形式。

也可以看看:

常量值:“java.util.logging:type = Logging”

Protected constructors

LogManager

Added in API level 1
LogManager ()

受保护的构造函数。 这是受保护的,以便容器应用程序(例如J2EE容器)可以对该对象进行子类化。 它是非公开的,因为它的目的是只有一个LogManager对象,其值通过调用Logmanager.getLogManager来检索。

Public methods

addLogger

Added in API level 1
boolean addLogger (Logger logger)

添加一个指定的记录器。 如果一个具有相同名字的记录器已经被注册,这将不做任何处理并返回false。

记录器工厂方法调用此方法来注册每个新创建的记录器。

应用程序应该保留自己对Logger对象的引用,以避免它被垃圾收集。 LogManager只能保留一个弱引用。

Parameters
logger Logger: the new logger.
Returns
boolean true if the argument logger was registered successfully, false if a logger of that name already exists.
Throws
NullPointerException if the logger name is null.

addPropertyChangeListener

Added in API level 3
void addPropertyChangeListener (PropertyChangeListener l)

添加要重新读取日志记录属性时要调用的事件侦听器。 添加同一事件侦听器的多个实例会导致属性事件侦听器表中有多个条目。

Parameters
l PropertyChangeListener: event listener
Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").
NullPointerException if the PropertyChangeListener is null.

checkAccess

Added in API level 1
void checkAccess ()

检查当前上下文是否可信,以修改日志记录配置。 这需要LoggingPermission(“控制”)。

如果检查失败,则抛出SecurityException,否则我们会正常返回。

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

getLogManager

Added in API level 1
LogManager getLogManager ()

返回全局LogManager对象。

Returns
LogManager

getLogger

Added in API level 1
Logger getLogger (String name)

找到指定记录器的方法。

请注意,由于不受信任的代码可能会创建具有任意名称的记录器,因此不应依赖此方法来查找Loggers以进行安全敏感的记录。 同样重要的是要注意,如果没有对记录器的强引用,任何时候与字符串name相关的记录器name可能被垃圾收集。 此方法的调用者必须检查null的返回值,以正确处理记录器已被垃圾收集的情况。

Parameters
name String: name of the logger
Returns
Logger matching logger or null if none is found

getLoggerNames

Added in API level 1
Enumeration<String> getLoggerNames ()

获取已知记录器名称的枚举。

注意:随着新类的加载,记录器可能会动态添加。 此方法仅报告当前注册的记录器。 注意这一点也很重要,该方法只返回记录器的名称,而不是对记录器本身的强引用。 返回的字符串不会阻止记录器被垃圾收集。 特别是,如果返回的名称被传递给LogManager.getLogger() ,那么调用者必须检查来自LogManager.getLogger()的返回值为null,以正确处理记录器在自该名称由该方法返回后的时间内被垃圾收集的情况。

Returns
Enumeration<String> enumeration of logger name strings

getLoggingMXBean

Added in API level 3
LoggingMXBean getLoggingMXBean ()

用于管理记录器的退货 LoggingMXBean

Returns
LoggingMXBean a LoggingMXBean object.

getProperty

Added in API level 1
String getProperty (String name)

获取日志记录属性的值。 如果找不到该属性,该方法返回null。

Parameters
name String: property name
Returns
String property value

readConfiguration

Added in API level 1
void readConfiguration ()

重新初始化日志记录属性并重新读取日志记录配置。

使用相同的规则来查找启动时使用的配置属性。 所以通常情况下,日志记录属性将从启动时使用的相同文件重新读取。

如果目标记录器存在,则使用Logger.setLevel()应用新配置文件中的任何日志级别定义。

读取属性后,PropertyChangeEvent将被触发。

Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").
IOException if there are IO problems reading the configuration.

readConfiguration

Added in API level 1
void readConfiguration (InputStream ins)

重新初始化日志记录属性并重新读取来自给定流的日志配置,应该使用java.util.Properties格式。 读取属性后,PropertyChangeEvent将被触发。

如果目标记录器存在,则使用Logger.setLevel()应用新配置文件中的任何日志级别定义。

Parameters
ins InputStream: stream to read properties from
Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").
IOException if there are problems reading from the stream.

removePropertyChangeListener

Added in API level 3
void removePropertyChangeListener (PropertyChangeListener l)

删除属性更改事件的事件侦听器。 如果通过多次调用addPropertyChangeListener将相同的侦听器实例添加到侦听器表中,则需要等效数量的removePropertyChangeListener调用才能从侦听器表中删除该侦听器的所有实例。

如果找不到给定的侦听器,则无提示返回。

Parameters
l PropertyChangeListener: event listener (can be null)
Throws
SecurityException if a security manager exists and if the caller does not have LoggingPermission("control").

reset

Added in API level 1
void reset ()

重置日志配置。

对于所有指定的记录器,重置操作将删除并关闭所有处理程序,并且(除根记录器外)将该级别设置为空。 根记录器的级别设置为Level.INFO。

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

Hooray!