Package org.jboss.logmanager

## Class LogContext

- java.lang.Object
- - org.jboss.logmanager.LogContext

All Implemented Interfaces:
  `Protectable`

    public final class LogContext
    extends java.lang.Object
    implements Protectable

A logging context, for producing isolated logging environments.

### Field Summary

Fields
`static LogContextSelector` `DEFAULT_LOG_CONTEXT_SELECTOR` The default log context selector, which always returns the system log context.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static LogContext` `create()` Create a new log context.
`static LogContext` `create​(boolean strong)` Create a new log context.
`protected void` `decrementRef​(java.lang.String name)`
`void` `disableAccess()` Disable previous access to the object for modifications on the current thread.
`void` `enableAccess​(java.lang.Object protectKey)` Enable access to the object for modifications on the current thread.
`<V> V` `getAttachment​(java.lang.String loggerName, Logger.AttachmentKey<V> key)` Get a logger attachment for a logger name, if it exists.
`java.util.logging.Level` `getLevelForName​(java.lang.String name)` Get the level for a name.
`static LogContext` `getLogContext()` Get the currently active log context.
`Logger` `getLogger​(java.lang.String name)` Get a logger with the given name from this logging context.
`Logger` `getLoggerIfExists​(java.lang.String name)` Get a logger with the given name from this logging context, if a logger node exists at that location.
`java.util.Enumeration<java.lang.String>` `getLoggerNames()` Returns an enumeration of the logger names that have been created.
`java.util.logging.LoggingMXBean` `getLoggingMXBean()` Get the `LoggingMXBean` associated with this log context.
`static LogContext` `getSystemLogContext()` Get the system log context.
`protected void` `incrementRef​(java.lang.String name)`
`void` `protect​(java.lang.Object protectionKey)` Protect this object from modifications.
`void` `registerLevel​(java.util.logging.Level level)` Register a level instance with this log context.
`static void` `setLogContextSelector​(LogContextSelector newSelector)` Set a new log context selector.
`void` `unprotect​(java.lang.Object protectionKey)` Allows the object to be modified if the `protectionKey` matches the key used to `protect` the object.
`void` `unregisterLevel​(java.util.logging.Level level)` Unregister a previously registered level.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### DEFAULT_LOG_CONTEXT_SELECTOR

    public static final LogContextSelector DEFAULT_LOG_CONTEXT_SELECTOR

The default log context selector, which always returns the system log context.

### Method Detail

#### create

    public static LogContext create​(boolean strong)

Create a new log context. If a security manager is installed, the caller must have the `"createLogContext"` `RuntimePermission` to invoke this method.

Parameters:
  `strong` - `true` if the context should use strong references, `false` to use (default) weak references for automatic logger GC
Returns:
  a new log context

#### create

    public static LogContext create()

Create a new log context. If a security manager is installed, the caller must have the `"createLogContext"` `RuntimePermission` to invoke this method.

Returns:
  a new log context

#### getLogger

    public Logger getLogger​(java.lang.String name)

Get a logger with the given name from this logging context.

Parameters:
  `name` - the logger name
Returns:
  the logger instance
See Also:
  `LogManager.getLogger(String)`

#### getLoggerIfExists

    public Logger getLoggerIfExists​(java.lang.String name)

Get a logger with the given name from this logging context, if a logger node exists at that location.

Parameters:
  `name` - the logger name
Returns:
  the logger instance, or `null` if no such logger node exists

#### getAttachment

    public <V> V getAttachment​(java.lang.String loggerName,
                               Logger.AttachmentKey<V> key)

Get a logger attachment for a logger name, if it exists.

Type Parameters:
  `V` - the attachment value type
Parameters:
  `loggerName` - the logger name
  `key` - the attachment key
Returns:
  the attachment or `null` if the logger or the attachment does not exist

#### getLoggingMXBean

    public java.util.logging.LoggingMXBean getLoggingMXBean()

Get the `LoggingMXBean` associated with this log context.

Returns:
  the `LoggingMXBean` instance

#### getLevelForName

    public java.util.logging.Level getLevelForName​(java.lang.String name)
                                            throws java.lang.IllegalArgumentException

Get the level for a name.

Parameters:
  `name` - the name
Returns:
  the level
Throws:
  `java.lang.IllegalArgumentException` - if the name is not known

#### registerLevel

    public void registerLevel​(java.util.logging.Level level)

Register a level instance with this log context. The level can then be looked up by name. Only a weak reference to the level instance will be kept. Any previous level registration for the given level's name will be overwritten.

Parameters:
  `level` - the level to register

#### unregisterLevel

    public void unregisterLevel​(java.util.logging.Level level)

Unregister a previously registered level. Log levels that are not registered may still be used, they just will not be findable by name.

Parameters:
  `level` - the level to unregister

#### getSystemLogContext

    public static LogContext getSystemLogContext()

Get the system log context.

Returns:
  the system log context

#### getLogContext

    public static LogContext getLogContext()

Get the currently active log context.

Returns:
  the currently active log context

#### setLogContextSelector

    public static void setLogContextSelector​(LogContextSelector newSelector)

Set a new log context selector. If a security manager is installed, the caller must have the `"setLogContextSelector"` `RuntimePermission` to invoke this method.

Parameters:
  `newSelector` - the new selector.

#### protect

    public void protect​(java.lang.Object protectionKey)
                 throws java.lang.SecurityException

Description copied from interface: `Protectable`
Protect this object from modifications.

Specified by:
  `protect` in interface `Protectable`
Parameters:
  `protectionKey` - the key used to protect the object.
Throws:
  `java.lang.SecurityException` - if the object is already protected.

#### unprotect

    public void unprotect​(java.lang.Object protectionKey)
                   throws java.lang.SecurityException

Description copied from interface: `Protectable`
Allows the object to be modified if the `protectionKey` matches the key used to `protect` the object.

Specified by:
  `unprotect` in interface `Protectable`
Parameters:
  `protectionKey` - the key used to protect the object.
Throws:
  `java.lang.SecurityException` - if the object is protected and the key doesn't match.

#### enableAccess

    public void enableAccess​(java.lang.Object protectKey)
                      throws java.lang.SecurityException

Description copied from interface: `Protectable`
Enable access to the object for modifications on the current thread.

Specified by:
  `enableAccess` in interface `Protectable`
Parameters:
  `protectKey` - the key used to `protect` modifications.
Throws:
  `java.lang.SecurityException`

#### disableAccess

    public void disableAccess()

Description copied from interface: `Protectable`
Disable previous access to the object for modifications on the current thread.

Specified by:
  `disableAccess` in interface `Protectable`

#### getLoggerNames

    public java.util.Enumeration<java.lang.String> getLoggerNames()

Returns an enumeration of the logger names that have been created. This does not return names of loggers that may have been garbage collected. Logger names added after the enumeration has been retrieved may also be added to the enumeration.

Returns:
  an enumeration of the logger names
See Also:
  `LogManager.getLoggerNames()`

#### incrementRef

    protected void incrementRef​(java.lang.String name)

#### decrementRef

    protected void decrementRef​(java.lang.String name)