java.lang.Object | |
↳ | java.util.logging.LogManager |
LogManager
is used to maintain configuration properties of the
logging framework, and to manage a hierarchical namespace of all named
Logger
objects.
There is only one global LogManager
instance in the
application, which can be get by calling static method
getLogManager()
. This instance is created and
initialized during class initialization and cannot be changed.
The LogManager
class can be specified by
java.util.logging.manager system property, if the property is unavailable or
invalid, the default class LogManager
will
be used.
On initialization, LogManager
reads its configuration from a
properties file, which by default is the "lib/logging.properties" in the JRE
directory.
However, two optional system properties can be used to customize the initial
configuration process of LogManager
.
These two properties can be set in three ways, by the Preferences API, by the "java" command line property definitions, or by system property definitions passed to JNI_CreateJavaVM.
The "java.util.logging.config.class" should specifies a class name. If it is
set, this given class will be loaded and instantiated during
LogManager
initialization, so that this object's default
constructor can read the initial configuration and define properties for
LogManager
.
If "java.util.logging.config.class" property is not set, or it is invalid, or
some exception is thrown during the instantiation, then the
"java.util.logging.config.file" system property can be used to specify a
properties file. The LogManager
will read initial
configuration from this file.
If neither of these properties is defined, or some exception is thrown
during these two properties using, the LogManager
will read
its initial configuration from default properties file, as described above.
The global logging properties may include:
Handler
and each must have a default constructor, these
classes will be loaded, instantiated and registered as handlers on the root
Logger
(the Logger
named ""). These
Handler
s maybe initialized lazily.LogManager
configuration
This class, together with any handler and configuration classes associated
with it, must be loaded from the system classpath when
LogManager
configuration occurs.
Besides global properties, the properties for loggers and Handlers can be specified in the property files. The names of these properties will start with the complete dot separated names for the handlers or loggers.
In the LogManager
's hierarchical namespace,
Loggers
are organized based on their dot separated names. For
example, "x.y.z" is child of "x.y".
Levels for Loggers
can be defined by properties whose name end
with ".level". Thus "alogger.level" defines a level for the logger named as
"alogger" and for all its children in the naming hierarchy. Log levels
properties are read and applied in the same order as they are specified in
the property file. The root logger's level can be defined by the property
named as ".level".
This class is thread safe. It is an error to synchronize on a
LogManager
while synchronized on a Logger
.
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | LOGGING_MXBEAN_NAME | The String value of the LoggingMXBean 's ObjectName. |
Protected Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Default constructor.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Add a given logger into the hierarchical namespace.
| |||||||||||
Add a
PropertyChangeListener , which will be invoked when
the properties are reread. | |||||||||||
Check that the caller has
LoggingPermission("control") so
that it is trusted to modify the configuration for logging framework. | |||||||||||
Get the global
LogManager instance. | |||||||||||
Get the logger with the given name.
| |||||||||||
Get a
Enumeration of all registered logger names. | |||||||||||
Get the
LoggingMXBean instance. | |||||||||||
Get the value of property with given name.
| |||||||||||
Re-initialize the properties and configuration.
| |||||||||||
Re-initialize the properties and configuration from the given
InputStream
Notice : No | |||||||||||
Remove a
PropertyChangeListener , do nothing if the given
listener is not found. | |||||||||||
Reset configuration.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class java.lang.Object
|
The String
value of the LoggingMXBean
's ObjectName.
Default constructor. This is not public because there should be only one
LogManager
instance, which can be get by
LogManager.getLogManager()
. This is protected so that
application can subclass the object.
Add a given logger into the hierarchical namespace. The
Logger.addLogger()
factory methods call this method to add newly
created Logger. This returns false if a logger with the given name has
existed in the namespace
Note that the LogManager
may only retain weak references to
registered loggers. In order to prevent Logger
objects from being
unexpectedly garbage collected it is necessary for applications
to maintain references to them.
logger | the logger to be added. |
---|
Add a PropertyChangeListener
, which will be invoked when
the properties are reread.
l | the PropertyChangeListener to be added. |
---|
SecurityException | if security manager exists and it determines that caller does not have the required permissions to perform this action. |
---|
Check that the caller has LoggingPermission("control")
so
that it is trusted to modify the configuration for logging framework. If
the check passes, just return, otherwise SecurityException
will be thrown.
SecurityException | if there is a security manager in operation and the invoker
of this method does not have the required security permission
LoggingPermission("control")
|
---|
Get the global LogManager
instance.
LogManager
instance
Get the logger with the given name.
name | name of logger |
---|
null
if nothing is found.
Get a Enumeration
of all registered logger names.
Get the LoggingMXBean
instance. this implementation always throws
an UnsupportedOperationException.
LoggingMXBean
instance
Get the value of property with given name.
name | the name of property |
---|
Re-initialize the properties and configuration. The initialization
process is same as the LogManager
instantiation.
Notice : No PropertyChangeEvent
are fired.
IOException | if any IO related problems happened. |
---|---|
SecurityException | if security manager exists and it determines that caller does not have the required permissions to perform this action. |
Re-initialize the properties and configuration from the given
InputStream
Notice : No PropertyChangeEvent
are fired.
ins | the input stream |
---|
IOException | if any IO related problems happened. |
---|---|
SecurityException | if security manager exists and it determines that caller does not have the required permissions to perform this action. |
Remove a PropertyChangeListener
, do nothing if the given
listener is not found.
l | the PropertyChangeListener to be removed. |
---|
SecurityException | if security manager exists and it determines that caller does not have the required permissions to perform this action. |
---|
Reset configuration.
All handlers are closed and removed from any named loggers. All loggers'
level is set to null, except the root logger's level is set to
Level.INFO
.
SecurityException | if security manager exists and it determines that caller does not have the required permissions to perform this action. |
---|