|
IBM WebSphere Application ServerTM Release 8 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ibm.websphere.logging.hpel.LogRecordContext
public class LogRecordContext
Provides a means to add key-value pairs to log and trace records. This class is particularly useful when the key-value pair that you need to add to log and trace output is already managed as a ThreadLocal.
Code that needs to add key-value pairs to log and trace records can register a key, and a corresponding LogRecordContext.Extension callback via the registerExtension method.
Log handlers can then use these key-value pairs in log and trace output by calling the getExtensions method, which in turn calls back to any registered LogRecordContext.Extension callbacks to populate the key-value pairs into a Map.
As an example, the following code could be used to add a LogRecordContext.Extension that provides the ThreadId of the current thread.
import com.ibm.websphere.logging.hpel.LogRecordContext; public class ThreadIdExtension { // a strong reference to the LogRecordContext.Extension to make // sure it is not garbage collected private final static LogRecordContext.Extension extension = new LogRecordContext.Extension() { public String getValue() { return Long.toString(Thread.currentThread().getId()); } }; public static void init() { LogRecordContext.registerExtension("ThreadId", extension); } public static void destroy() { LogRecordContext.unregisterExtension("ThreadId"); } }A log handler could then make use of this information as follows:
import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import java.util.logging.Handler; import java.util.logging.LogRecord; import com.ibm.websphere.logging.hpel.LogRecordContext; public class MyHandler extends Handler { private PrintWriter printWriter; MyHandler(PrintWriter printWriter) { this.printWriter = printWriter; } public void close() { printWriter.close(); } public void flush() { printWriter.flush(); } public void publish(LogRecord record) { MapNote that the HPEL handlers callcontext = new HashMap (); // get the extension keys/values LogRecordContext.getExtensions(context); String threadId = context.get("ThreadId"); printWriter.println("[" + threadId + "] " + record.getMessage()); } }
LogRecordContext.getExtensions
and store the resultant key-value pairs in the log and trace data
repositories. This information can then be accessed via the
com.ibm.websphere.logging.hpel.reader.RepositoryLogRecord getExtensions
method. Extension information can also be used for filtering log and trace
records via the LogViewer command line tool's -includeExtensions option.
Nested Class Summary | |
---|---|
static interface |
LogRecordContext.Extension
Call back interface to retrieve current extension value. |
Constructor Summary | |
---|---|
LogRecordContext()
|
Method Summary | |
---|---|
static void |
getExtensions(java.util.Map<java.lang.String,java.lang.String> map)
Retrieves values for all registered context extensions. |
static void |
registerExtension(java.lang.String key,
LogRecordContext.Extension extension)
Registers new context extension. |
static boolean |
unregisterExtension(java.lang.String key)
Removes context extension registration. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LogRecordContext()
Method Detail |
---|
public static void registerExtension(java.lang.String key, LogRecordContext.Extension extension)
key
- String key to associate with the registered extensionextension
- LogRecordContext.Extension
implementation returning extension runtime values
java.lang.IllegalArgumentException
- if parameter key
or extension
are null
; or if key
already has extension associated with it.public static boolean unregisterExtension(java.lang.String key)
key
- String key associated with the registered extension.
true
if key had extension associated with it.
java.lang.IllegalArgumentException
- if parameter key
is null
.public static void getExtensions(java.util.Map<java.lang.String,java.lang.String> map) throws java.lang.IllegalArgumentException
map
- Map
instance to populate with key-value pairs of
the context extensions.
java.lang.IllegalArgumentException
- if parameter map
is null
|
IBM WebSphere Application ServerTM Release 8 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |