Javolution 6.0.0 java
|
Classes | |
enum | Level |
Public Member Functions | |
abstract void | prefix (Object... prefixes) |
abstract void | setLevel (Level level) |
abstract void | suffix (Object... suffixes) |
void | exit () |
Static Public Member Functions | |
static void | debug (Object... message) |
static LogContext | enter () |
static void | error (Object... message) |
static void | info (Object... message) |
static void | warning (Object... message) |
static AbstractContext | current () |
static< T extends AbstractContext > T | enter (Class< T > custom) |
static void | inherit (AbstractContext ctx) |
Static Public Attributes | |
static final Configurable< Level > | LEVEL |
Protected Member Functions | |
LogContext () | |
abstract void | log (Level level, Object... message) |
AbstractContext | enterInner () |
AbstractContext | getOuter () |
abstract AbstractContext | inner () |
Static Protected Member Functions | |
static< T extends AbstractContext > T | current (Class< T > type) |
Static Private Member Functions | |
static LogContext | currentLogContext () |
Private Attributes | |
AbstractContext | outer |
Static Private Attributes | |
static final ThreadLocal< AbstractContext > | CURRENT = new ThreadLocal<AbstractContext>() |
Asynchronous logging context integrated with the OSGi logging framework. The logging back-end, or how the log entries are displayed, stored, or processed is unspecified but always performed asynchronously. When running outside OSGi, log messages are sent to System#out. Message formatting itself is always performed synchronously using the current TextContext.
Logging contexts support automatic prefixing/suffixing of any information relevant to the user/developer (thread info, user id, and so on). [code] void run() { LogContext ctx = LogContext.enter(); try { // Prefix the executing thread to any message being logged. ctx.prefix("[Thread: ", Thead.currentThread(), "] "); ... } finally { ctx.exit(); } }[/code]
Applications should separate messages elements by commas and not use String concatenations when calling log methods otherwise the concatenation is performed even when log events are filtered out. [code] LogContext ctx = LogContext.enter(); try { ctx.setLevel(Level.INFO); // Does not log debug messages. ... LogContext.debug("Index: ", index, " at maximum value"); // GOOD, no formatting performed ! LogContext.debug("Index: " + index + " at maximum value"); // BAD, formatting performed even though nothing is logged ! ... } finally { ctx.exit(); }[/code]
Definition at line 56 of file LogContext.java.
|
protected |
|
staticinherited |
Returns the current context for the current thread or
if this thread has no context (default).
Definition at line 61 of file AbstractContext.java.
References javolution.context.AbstractContext.CURRENT.
Referenced by javolution.context.LogContext.currentLogContext(), javolution.context.SecurityContext.currentSecurityContext(), javolution.text.TextContext.currentTextContext(), javolution.xml.XMLContext.currentXMLContext(), javolution.context.LocalContext.enter(), javolution.context.ConcurrentContext.enter(), and javolution.context.LocalContext.Parameter< T >.get().
|
staticprotectedinherited |
Returns the current context of specified type or
if none.
Definition at line 69 of file AbstractContext.java.
References javolution.context.AbstractContext.CURRENT, and javolution.context.AbstractContext.outer.
|
staticprivate |
Definition at line 120 of file LogContext.java.
References javolution.context.AbstractContext.current(), and javolution.osgi.internal.OSGiServices.getLogContext().
Referenced by javolution.context.LogContext.debug(), javolution.context.LogContext.enter(), javolution.context.LogContext.error(), javolution.context.LogContext.info(), and javolution.context.LogContext.warning().
|
static |
Logs the specified debug message.
Definition at line 87 of file LogContext.java.
References javolution.context.LogContext.currentLogContext(), javolution.context.LogContext.Level.DEBUG, and javolution.context.LogContext.log().
Referenced by javolution.lang.Configurable< javolution.context.LogContext.Level >.Configurable(), javolution.osgi.internal.ConfigurableListenerImpl.configurableInitialized(), javolution.osgi.internal.ConfigurableListenerImpl.configurableReconfigured(), javolution.lang.Initializer.initializeLoadedClasses(), javolution.lang.Initializer.loadClass(), and javolution.test.Perfometer< T >.printDetails().
|
static |
Enters and returns a new log context instance.
Definition at line 94 of file LogContext.java.
References javolution.context.LogContext.currentLogContext(), and javolution.context.AbstractContext.enterInner().
|
staticinherited |
Enters the scope of a custom context. This method raises a SecurityException if the permission to enter contexts of the specified class is not granted. For example, the following disallow entering any custom context. [code] SecurityContext ctx = SecurityContext.enter(); try { ctx.revoke(new SecurityContext.Permission(AbstractContext.class, "enter")); ... // Cannot enter any custom context. } finally { ctx.exit(); // Back to previous security settings. }[/code]
custom | the custom context to enter. |
IllegalArgumentException | if the specified class default constructor cannot be instantiated. |
SecurityException | if SecurityContext.Permission(custom, "enter")
is not granted. |
Definition at line 101 of file AbstractContext.java.
References javolution.context.SecurityContext.check().
|
protectedinherited |
Enters the scope of an inner context which becomes the current context; the previous current context becomes the outer of this context.
Definition at line 141 of file AbstractContext.java.
References javolution.context.AbstractContext.CURRENT, and javolution.context.AbstractContext.outer.
Referenced by javolution.xml.XMLContext.enter(), javolution.text.TextContext.enter(), javolution.context.LogContext.enter(), javolution.context.LocalContext.enter(), javolution.context.SecurityContext.enter(), and javolution.context.ConcurrentContext.enter().
|
static |
Logs the specified error message (which may include any Throwable instance).
Definition at line 102 of file LogContext.java.
References javolution.context.LogContext.currentLogContext(), javolution.context.LogContext.Level.ERROR, and javolution.context.LogContext.log().
Referenced by javolution.lang.Initializer.initializeLoadedClasses().
|
inherited |
Exits the scope of this context; the outer of this context becomes
the current context.
IllegalStateException | if this context is not the current context. |
Reimplemented in javolution.context.ConcurrentContext, and javolution.context.internal.ConcurrentContextImpl.
Definition at line 155 of file AbstractContext.java.
References javolution.context.AbstractContext.CURRENT.
|
protectedinherited |
Returns the outer context of this context or
if this context has no outer context.
Definition at line 167 of file AbstractContext.java.
|
static |
Logs the specified info message.
Definition at line 109 of file LogContext.java.
References javolution.context.LogContext.currentLogContext(), javolution.context.LogContext.Level.INFO, and javolution.context.LogContext.log().
Referenced by javolution.xml.internal.stream.XMLStreamReaderImpl.increaseDataBuffer(), javolution.xml.internal.stream.XMLStreamReaderImpl.increaseStack(), and javolution.test.Perfometer< T >.print().
|
staticinherited |
Inherits the specified context which becomes the context of the current thread. This method is particularly useful when creating new threads to make them inherits from the context stack of the parent thread. [code] //Spawns a new thread inheriting the context of the current thread. MyThread myThread = new MyThread(); myThread.inherited = AbstractContext.current(); myThread.start(); ... class MyThread extends Thread { AbstractContext inherited; public void run() { AbstractContext.inherit(inherited); // Sets current context. ... } }[/code]
Definition at line 131 of file AbstractContext.java.
Referenced by javolution.context.internal.ConcurrentThreadImpl.run().
|
abstractprotectedinherited |
Returns a new inner instance of this context inheriting the properties of this context. The new instance can be configured independently from its parent.
Reimplemented in javolution.context.internal.ConcurrentContextImpl, javolution.text.internal.TextContextImpl, javolution.context.internal.LogContextImpl, javolution.context.internal.SecurityContextImpl, javolution.xml.internal.XMLContextImpl, and javolution.context.internal.LocalContextImpl.
|
abstractprotected |
Logs the specified message at the specified level.
Referenced by javolution.context.LogContext.debug(), javolution.context.LogContext.error(), javolution.context.LogContext.info(), and javolution.context.LogContext.warning().
|
abstract |
Prefixes all messages being logged by the specified prefixes (prefixing existing prefixes if any).
Reimplemented in javolution.context.internal.LogContextImpl.
|
abstract |
Set the logging level, messages below that level are not logged.
|
abstract |
Suffixes all messages being logged by the specified suffixes (suffixing existing suffixes if any).
Reimplemented in javolution.context.internal.LogContextImpl.
|
static |
Logs the specified warning message.
Definition at line 116 of file LogContext.java.
References javolution.context.LogContext.currentLogContext(), javolution.context.LogContext.log(), and javolution.context.LogContext.Level.WARNING.
Referenced by javolution.text.internal.TextContextImpl.searchFormat().
|
staticprivateinherited |
Holds the last context entered (thread-local).
Definition at line 45 of file AbstractContext.java.
Referenced by javolution.context.AbstractContext.current(), javolution.context.AbstractContext.enterInner(), and javolution.context.AbstractContext.exit().
|
static |
Holds the default logging level (DEBUG
). This level is configurable. For example, running with the option -Djavolution.context.LogContextLEVEL=WARNING
causes the debug/info not to be logged.
Definition at line 73 of file LogContext.java.
Referenced by javolution.context.internal.LogContextImpl.currentLevel().
|
privateinherited |
Holds the outer context or
if none (top context).
Definition at line 50 of file AbstractContext.java.
Referenced by javolution.context.AbstractContext.current(), and javolution.context.AbstractContext.enterInner().