org.jboss.logmanager

## Class ExtLogRecord

- java.lang.Object
- - java.util.logging.LogRecord
  - - org.jboss.logmanager.ExtLogRecord

All Implemented Interfaces:
  Serializable

    public class ExtLogRecord
    extends LogRecord

An extended log record, which includes additional information including MDC/NDC and correct caller location (even in the presence of a logging facade).

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `ExtLogRecord.FormatStyle` The format style to use.

### Constructor Summary

Constructors
Constructor and Description
`ExtLogRecord(ExtLogRecord original)` Make a copy of a log record.
`ExtLogRecord(Level level, String msg, ExtLogRecord.FormatStyle formatStyle, String loggerClassName)` Construct a new instance.
`ExtLogRecord(Level level, String msg, String loggerClassName)` Construct a new instance.

### Method Summary

Methods
`void` `copyAll()` Copy all fields and prepare this object to be passed to another thread or to be serialized.
`void` `copyMdc()` Copy the MDC.
`void` `disableCallerCalculation()` Disable caller calculation for this record.
`ExtLogRecord.FormatStyle` `getFormatStyle()` Get the format style for the record.
`String` `getFormattedMessage()` Get the fully formatted log record, with resources resolved and parameters applied.
`String` `getLoggerClassName()` Get the class name of the logger which created this record.
`String` `getMdc(String key)` Get the value of an MDC property.
`Map<String,String>` `getMdcCopy()` Get a copy of all the MDC properties for this log record.
`String` `getNdc()` Get the NDC for this log record.
`String` `getResourceKey()` Get the resource key, if any.
`String` `getSourceClassName()`
`String` `getSourceFileName()` Get the source file name for this log record.
`int` `getSourceLineNumber()` Get the source line number for this log record.
`String` `getSourceMethodName()`
`String` `getThreadName()` Get the thread name of this logging event.
`String` `putMdc(String key, String value)` Change an MDC value on this record.
`String` `removeMdc(String key)` Remove an MDC value on this record.
`void` `setMdc(Map<?,?> sourceMap)` Create a new MDC using a copy of the source map.
`void` `setMessage(String message)` Set the raw message.
`void` `setMessage(String message, ExtLogRecord.FormatStyle formatStyle)` Set the raw message.
`void` `setNdc(String value)` Change the NDC for this log record.
`void` `setParameters(Object[] parameters)` Set the parameters to the log message.
`void` `setResourceBundle(ResourceBundle bundle)` Set the localization resource bundle.
`void` `setResourceBundleName(String name)` Set the localization resource bundle name.
`void` `setSourceClassName(String sourceClassName)`
`void` `setSourceFileName(String sourceFileName)` Set the source file name for this log record.
`void` `setSourceLineNumber(int sourceLineNumber)` Set the source line number for this log record.
`void` `setSourceMethodName(String sourceMethodName)`
`void` `setThreadName(String threadName)` Set the thread name of this logging event.
`static ExtLogRecord` `wrap(LogRecord rec)` Wrap a JDK log record.

### Methods inherited from class java.util.logging.LogRecord

`getLevel, getLoggerName, getMessage, getMillis, getParameters, getResourceBundle, getResourceBundleName, getSequenceNumber, getThreadID, getThrown, setLevel, setLoggerName, setMillis, setSequenceNumber, setThreadID, setThrown`

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

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

### Constructor Detail

#### ExtLogRecord

    public ExtLogRecord(Level level,
                String msg,
                String loggerClassName)

Construct a new instance. Grabs the current NDC immediately. MDC is deferred.

Parameters:
  `level` - a logging level value
  `msg` - the raw non-localized logging message (may be null)
  `loggerClassName` - the name of the logger class

#### ExtLogRecord

    public ExtLogRecord(Level level,
                String msg,
                ExtLogRecord.FormatStyle formatStyle,
                String loggerClassName)

Construct a new instance. Grabs the current NDC immediately. MDC is deferred.

Parameters:
  `level` - a logging level value
  `msg` - the raw non-localized logging message (may be null)
  `formatStyle` - the parameter format style to use
  `loggerClassName` - the name of the logger class

#### ExtLogRecord

    public ExtLogRecord(ExtLogRecord original)

Make a copy of a log record.

Parameters:
  `original` - the original

### Method Detail

#### wrap

    public static ExtLogRecord wrap(LogRecord rec)

Wrap a JDK log record. If the target record is already an `ExtLogRecord`, it is simply returned. Otherwise a wrapper record is created and returned.

Parameters:
  `rec` - the original record
Returns:
  the wrapped record

#### disableCallerCalculation

    public void disableCallerCalculation()

Disable caller calculation for this record. If the caller has already been calculated, leave it; otherwise set the caller to `"unknown"`.

#### copyAll

    public void copyAll()

Copy all fields and prepare this object to be passed to another thread or to be serialized. Calling this method more than once has no additional effect and will not incur extra copies.

#### copyMdc

    public void copyMdc()

Copy the MDC. Call this method before passing this log record to another thread. Calling this method more than once has no additional effect and will not incur extra copies.

#### getMdc

    public String getMdc(String key)

Get the value of an MDC property.

Parameters:
  `key` - the property key
Returns:
  the property value

#### getMdcCopy

    public Map<String,String> getMdcCopy()

Get a copy of all the MDC properties for this log record. If the MDC has not yet been copied, this method will copy it.

Returns:
  a copy of the MDC map

#### putMdc

    public String putMdc(String key,
                String value)

Change an MDC value on this record. If the MDC has not yet been copied, this method will copy it.

Parameters:
  `key` - the key to set
  `value` - the value to set it to
Returns:
  the old value, if any

#### removeMdc

    public String removeMdc(String key)

Remove an MDC value on this record. If the MDC has not yet been copied, this method will copy it.

Parameters:
  `key` - the key to remove
Returns:
  the old value, if any

#### setMdc

    public void setMdc(Map<?,?> sourceMap)

Create a new MDC using a copy of the source map.

Parameters:
  `sourceMap` - the source man, must not be `null`

#### getNdc

    public String getNdc()

Get the NDC for this log record.

Returns:
  the NDC

#### setNdc

    public void setNdc(String value)

Change the NDC for this log record.

Parameters:
  `value` - the new NDC value

#### getLoggerClassName

    public String getLoggerClassName()

Get the class name of the logger which created this record.

Returns:
  the class name

#### getFormatStyle

    public ExtLogRecord.FormatStyle getFormatStyle()

Get the format style for the record.

Returns:
  the format style

#### getSourceLineNumber

    public int getSourceLineNumber()

Get the source line number for this log record.

Note that this line number is not verified and may be spoofed. This information may either have been provided as part of the logging call, or it may have been inferred automatically by the logging framework. In the latter case, the information may only be approximate and may in fact describe an earlier call on the stack frame. May be -1 if no information could be obtained.

Returns:
  the source line number

#### setSourceLineNumber

    public void setSourceLineNumber(int sourceLineNumber)

Set the source line number for this log record.

Parameters:
  `sourceLineNumber` - the source line number

#### getSourceFileName

    public String getSourceFileName()

Get the source file name for this log record.

Note that this file name is not verified and may be spoofed. This information may either have been provided as part of the logging call, or it may have been inferred automatically by the logging framework. In the latter case, the information may only be approximate and may in fact describe an earlier call on the stack frame. May be `null` if no information could be obtained.

Returns:
  the source file name

#### setSourceFileName

    public void setSourceFileName(String sourceFileName)

Set the source file name for this log record.

Parameters:
  `sourceFileName` - the source file name

#### getSourceClassName

    public String getSourceClassName()

Overrides:
  `getSourceClassName` in class `LogRecord`

#### setSourceClassName

    public void setSourceClassName(String sourceClassName)

Overrides:
  `setSourceClassName` in class `LogRecord`

#### getSourceMethodName

    public String getSourceMethodName()

Overrides:
  `getSourceMethodName` in class `LogRecord`

#### setSourceMethodName

    public void setSourceMethodName(String sourceMethodName)

Overrides:
  `setSourceMethodName` in class `LogRecord`

#### getFormattedMessage

    public String getFormattedMessage()

Get the fully formatted log record, with resources resolved and parameters applied.

Returns:
  the formatted log record

#### getResourceKey

    public String getResourceKey()

Get the resource key, if any. If the log message is not localized, then the key is `null`.

Returns:
  the resource key

#### getThreadName

    public String getThreadName()

Get the thread name of this logging event.

Returns:
  the thread name

#### setThreadName

    public void setThreadName(String threadName)

Set the thread name of this logging event.

Parameters:
  `threadName` - the thread name

#### setMessage

    public void setMessage(String message)

Set the raw message. Any cached formatted message is discarded. The parameter format is set to be `MessageFormat`-style.

Overrides:
  `setMessage` in class `LogRecord`
Parameters:
  `message` - the new raw message

#### setMessage

    public void setMessage(String message,
                  ExtLogRecord.FormatStyle formatStyle)

Set the raw message. Any cached formatted message is discarded. The parameter format is set according to the given argument.

Parameters:
  `message` - the new raw message
  `formatStyle` - the format style to use

#### setParameters

    public void setParameters(Object[] parameters)

Set the parameters to the log message. Any cached formatted message is discarded.

Overrides:
  `setParameters` in class `LogRecord`
Parameters:
  `parameters` - the log message parameters. (may be null)

#### setResourceBundle

    public void setResourceBundle(ResourceBundle bundle)

Set the localization resource bundle. Any cached formatted message is discarded.

Overrides:
  `setResourceBundle` in class `LogRecord`
Parameters:
  `bundle` - localization bundle (may be null)

#### setResourceBundleName

    public void setResourceBundleName(String name)

Set the localization resource bundle name. Any cached formatted message is discarded.

Overrides:
  `setResourceBundleName` in class `LogRecord`
Parameters:
  `name` - localization bundle name (may be null)