Top Description Inners Fields Constructors Methods
java.util.logging

public Class Level

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.io.Serial, java.lang.ref.Reference, .ReferenceQueue, .WeakReference, java.security.AccessController, .PrivilegedAction, java.util.ArrayList, .Collections, .HashMap, .List, .Locale, .Map, .Optional, .ResourceBundle, java.util.function.Function, jdk.internal.loader.ClassLoaderValue, jdk.internal.access.JavaUtilResourceBundleAccess, .SharedSecrets

The Level class defines a set of standard logging levels that can be used to control logging output. The logging Level objects are ordered and are specified by ordered integers. Enabling logging at a given level also enables logging at all higher levels.

Clients should normally use the predefined Level constants such as Level.SEVERE.

The levels in descending order are:

In addition there is a level OFF that can be used to turn off logging, and a level ALL that can be used to enable logging of all messages.

It is possible for third parties to define additional logging levels by subclassing Level. In such cases subclasses should take care to chose unique integer level values and to ensure that they maintain the Object uniqueness property across serialization by defining a suitable readResolve method.

Since
1.4

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
private static class

Field Summary

Modifier and TypeField and Description
public static final Level
ALL

ALL indicates that all messages should be logged.

private transient Locale
public static final Level
CONFIG

CONFIG is a message level for static configuration messages.

private static final String
public static final Level
FINE

FINE is a message level providing tracing information.

public static final Level
FINER

FINER indicates a fairly detailed tracing message.

public static final Level
FINEST

FINEST indicates a highly detailed tracing message.

public static final Level
INFO

INFO is a message level for informational messages.

private transient String
private final String
public static final Level
OFF

OFF is a special level that can be used to turn off logging.

private final String
private static final long
public static final Level
SEVERE

SEVERE is a message level indicating a serious failure.

private static final Level[]
private final int
public static final Level
WARNING

WARNING is a message level indicating a potential problem.

Constructor Summary

AccessConstructor and Description
protected
Level(String
the name of the Level, for example "SEVERE".
name
,
int
an integer value for the level.
value
)

Create a named Level with a given integer value.

protected
Level(String
the name of the Level, for example "SEVERE".
name
,
int
an integer value for the level.
value
,
String
name of a resource bundle to use in localizing the given name. If the resourceBundleName is null or an empty string, it is ignored.
resourceBundleName
)

Create a named Level with a given integer value and a given localization resource name.

private
Level(String name, int value, String resourceBundleName, boolean visible)

Method Summary

Modifier and TypeMethod and Description
private String
public boolean

Returns:

true if and only if the two objects have the same level value.
equals
(Object
the reference object with which to compare.
ox
)

Overrides java.lang.Object.equals.

Compare two objects for value equality.

pack-priv static Level
pack-priv final String
pack-priv final String
pack-priv final synchronized String
public String

Returns:

localized name
getLocalizedName
()

Return the localized string name of the Level, for the current default locale.

public String

Returns:

non-localized name
getName
()

Return the non-localized string name of the Level.

public String

Returns:

localization resource bundle name
getResourceBundleName
()

Return the level's localization resource bundle name, or null if no localization bundle is defined.

public int

Returns:

a hashcode based on the level value
hashCode
()

Overrides java.lang.Object.hashCode.

Generate a hashcode.

public final int

Returns:

the integer value for this level.
intValue
()

Get the integer value for this level.

public static synchronized Level

Returns:

The parsed value. Passing an integer that corresponds to a known name (e.g., 700) will return the associated name (e.g., CONFIG). Passing an integer that does not (e.g., 1) will return a new level name initialized to that value.
parse
(String
string to be parsed
name
)

Parse a level name string into a Level.

private Object

Returns:

a Level instance corresponding to the deserialized object.
readResolve
()

Returns a Level instance with the same name, value, and resourceBundleName as the deserialized object.

public final String

Returns:

the non-localized name of the Level, for example "INFO".
toString
()

Overrides java.lang.Object.toString.

Returns a string representation of this Level.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

ALLback to summary
public static final Level ALL

ALL indicates that all messages should be logged. This level is initialized to Integer.MIN_VALUE.

cachedLocaleback to summary
private transient Locale cachedLocale
CONFIGback to summary
public static final Level CONFIG

CONFIG is a message level for static configuration messages.

CONFIG messages are intended to provide a variety of static configuration information, to assist in debugging problems that may be associated with particular configurations. For example, CONFIG message might include the CPU type, the graphics depth, the GUI look-and-feel, etc. This level is initialized to 700.

defaultBundleback to summary
private static final String defaultBundle
FINEback to summary
public static final Level FINE

FINE is a message level providing tracing information.

All of FINE, FINER, and FINEST are intended for relatively detailed tracing. The exact meaning of the three levels will vary between subsystems, but in general, FINEST should be used for the most voluminous detailed output, FINER for somewhat less detailed output, and FINE for the lowest volume (and most important) messages.

In general the FINE level should be used for information that will be broadly interesting to developers who do not have a specialized interest in the specific subsystem.

FINE messages might include things like minor (recoverable) failures. Issues indicating potential performance problems are also worth logging as FINE. This level is initialized to 500.

FINERback to summary
public static final Level FINER

FINER indicates a fairly detailed tracing message. By default logging calls for entering, returning, or throwing an exception are traced at this level. This level is initialized to 400.

FINESTback to summary
public static final Level FINEST

FINEST indicates a highly detailed tracing message. This level is initialized to 300.

INFOback to summary
public static final Level INFO

INFO is a message level for informational messages.

Typically INFO messages will be written to the console or its equivalent. So the INFO level should only be used for reasonably significant messages that will make sense to end users and system administrators. This level is initialized to 800.

localizedLevelNameback to summary
private transient String localizedLevelName
nameback to summary
private final String name
OFFback to summary
public static final Level OFF

OFF is a special level that can be used to turn off logging. This level is initialized to Integer.MAX_VALUE.

resourceBundleNameback to summary
private final String resourceBundleName
serialVersionUIDback to summary
private static final long serialVersionUID
Annotations
@Serial
SEVEREback to summary
public static final Level SEVERE

SEVERE is a message level indicating a serious failure.

In general SEVERE messages should describe events that are of considerable importance and which will prevent normal program execution. They should be reasonably intelligible to end users and to system administrators. This level is initialized to 1000.

standardLevelsback to summary
private static final Level[] standardLevels
valueback to summary
private final int value
WARNINGback to summary
public static final Level WARNING

WARNING is a message level indicating a potential problem.

In general WARNING messages should describe events that will be of interest to end users or system managers, or which indicate potential problems. This level is initialized to 900.

Constructor Detail

Levelback to summary
protected Level(String name, int value)

Create a named Level with a given integer value.

Note that this constructor is "protected" to allow subclassing. In general clients of logging should use one of the constant Level objects such as SEVERE or FINEST. However, if clients need to add new logging levels, they may subclass Level and define new constants.

Parameters
name:String

the name of the Level, for example "SEVERE".

value:int

an integer value for the level.

Exceptions
NullPointerException:
if the name is null
Levelback to summary
protected Level(String name, int value, String resourceBundleName)

Create a named Level with a given integer value and a given localization resource name.

Parameters
name:String

the name of the Level, for example "SEVERE".

value:int

an integer value for the level.

resourceBundleName:String

name of a resource bundle to use in localizing the given name. If the resourceBundleName is null or an empty string, it is ignored.

Exceptions
NullPointerException:
if the name is null
Levelback to summary
private Level(String name, int value, String resourceBundleName, boolean visible)

Method Detail

computeLocalizedLevelNameback to summary
private String computeLocalizedLevelName(Locale newLocale)
equalsback to summary
public boolean equals(Object ox)

Overrides java.lang.Object.equals.

Compare two objects for value equality.

Parameters
ox:Object

Doc from java.lang.Object.equals.

the reference object with which to compare.

Returns:boolean

true if and only if the two objects have the same level value.

Annotations
@Override
findLevelback to summary
pack-priv static Level findLevel(String name)
getCachedLocalizedLevelNameback to summary
pack-priv final String getCachedLocalizedLevelName()
getLevelNameback to summary
pack-priv final String getLevelName()
getLocalizedLevelNameback to summary
pack-priv final synchronized String getLocalizedLevelName()
getLocalizedNameback to summary
public String getLocalizedName()

Return the localized string name of the Level, for the current default locale.

If no localization information is available, the non-localized name is returned.

Returns:String

localized name

getNameback to summary
public String getName()

Return the non-localized string name of the Level.

Returns:String

non-localized name

getResourceBundleNameback to summary
public String getResourceBundleName()

Return the level's localization resource bundle name, or null if no localization bundle is defined.

Returns:String

localization resource bundle name

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Generate a hashcode.

Returns:int

a hashcode based on the level value

Annotations
@Override
intValueback to summary
public final int intValue()

Get the integer value for this level. This integer value can be used for efficient ordering comparisons between Level objects.

Returns:int

the integer value for this level.

parseback to summary
public static synchronized Level parse(String name) throws IllegalArgumentException

Parse a level name string into a Level.

The argument string may consist of either a level name or an integer value.

For example:

  • "SEVERE"
  • "1000"
Parameters
name:String

string to be parsed

Returns:Level

The parsed value. Passing an integer that corresponds to a known name (e.g., 700) will return the associated name (e.g., CONFIG). Passing an integer that does not (e.g., 1) will return a new level name initialized to that value.

Exceptions
IllegalArgumentException:
if the value is not valid. Valid values are integers between Integer.MIN_VALUE and Integer.MAX_VALUE, and all known level names. Known names are the levels defined by this class (e.g., FINE, FINER, FINEST), or created by this class with appropriate package access, or new levels defined or created by subclasses.
NullPointerException:
if the name is null
readResolveback to summary
private Object readResolve()

Returns a Level instance with the same name, value, and resourceBundleName as the deserialized object.

Returns:Object

a Level instance corresponding to the deserialized object.

Annotations
@Serial
toStringback to summary
public final String toString()

Overrides java.lang.Object.toString.

Returns a string representation of this Level.

Returns:String

the non-localized name of the Level, for example "INFO".

Annotations
@Override
java.util.logging back to summary

pack-priv final Class Level.KnownLevel

extends WeakReference<Level>
Class Inheritance

Field Summary

Modifier and TypeField and Description
private static final ClassLoaderValue<List<Level>>
private static Map<Integer, List<Level.KnownLevel>>
pack-priv final Level
private static Map<String, List<Level.KnownLevel>>
private static final ReferenceQueue<Level>

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv static synchronized void
pack-priv static synchronized Optional<Level>
pack-priv static synchronized Optional<Level>
pack-priv static synchronized Optional<Level>
pack-priv static synchronized Optional<Level>
pack-priv Optional<Level>
pack-priv static synchronized void
pack-priv Optional<Level>
private static void
private void

Field Detail

CUSTOM_LEVEL_CLVback to summary
private static final ClassLoaderValue<List<Level>> CUSTOM_LEVEL_CLV
intToLevelsback to summary
private static Map<Integer, List<Level.KnownLevel>> intToLevels
mirroredLevelback to summary
pack-priv final Level mirroredLevel
nameToLevelsback to summary
private static Map<String, List<Level.KnownLevel>> nameToLevels
QUEUEback to summary
private static final ReferenceQueue<Level> QUEUE

Constructor Detail

KnownLevelback to summary
pack-priv KnownLevel(Level l)

Method Detail

addback to summary
pack-priv static synchronized void add(Level l)
findByLocalizedLevelNameback to summary
pack-priv static synchronized Optional<Level> findByLocalizedLevelName(String name, Function<Level.KnownLevel, Optional<Level>> selector)
findByNameback to summary
pack-priv static synchronized Optional<Level> findByName(String name, Function<Level.KnownLevel, Optional<Level>> selector)
findByValueback to summary
pack-priv static synchronized Optional<Level> findByValue(int value, Function<Level.KnownLevel, Optional<Level>> selector)
matchesback to summary
pack-priv static synchronized Optional<Level> matches(Level l)
mirroredback to summary
pack-priv Optional<Level> mirrored()
purgeback to summary
pack-priv static synchronized void purge()
referentback to summary
pack-priv Optional<Level> referent()
registerWithClassLoaderback to summary
private static void registerWithClassLoader(Level customLevel)
removeback to summary
private void remove()
java.util.logging back to summary

private final Class Level.RbAccess

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv static final JavaUtilResourceBundleAccess

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

RB_ACCESSback to summary
pack-priv static final JavaUtilResourceBundleAccess RB_ACCESS

Constructor Detail

RbAccessback to summary
private RbAccess()