|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.logging.log4j.core.filter.AbstractFilterable
org.apache.logging.log4j.core.config.LoggerConfig
org.apache.logging.log4j.core.async.AsyncLoggerConfig
public class AsyncLoggerConfig
Asynchronous Logger object that is created via configuration and can be combined with synchronous loggers.
AsyncLoggerConfig is a logger designed for high throughput and low latency logging. It does not perform any I/O in the calling (application) thread, but instead hands off the work to another thread as soon as possible. The actual logging is performed in the background thread. It uses the LMAX Disruptor library for inter-thread communication. (http://lmax-exchange.github.com/disruptor/)
To use AsyncLoggerConfig, specify <asyncLogger>
or
<asyncRoot>
in configuration.
Note that for performance reasons, this logger does not include source
location by default. You need to specify includeLocation="true"
in
the configuration or any %class, %location or %line conversion patterns in
your log4j.xml configuration will produce either a "?" character or no output
at all.
For best performance, use AsyncLoggerConfig with the FastFileAppender or FastRollingFileAppender, with immediateFlush=false. These appenders have built-in support for the batching mechanism used by the Disruptor library, and they will flush to disk at the end of each batch. This means that even with immediateFlush=false, there will never be any items left in the buffer; all log events will all be written to disk in a very efficient manner.
Nested Class Summary | |
---|---|
static class |
AsyncLoggerConfig.RootLogger
An asynchronous root Logger. |
Constructor Summary | |
---|---|
|
AsyncLoggerConfig()
Default constructor. |
|
AsyncLoggerConfig(String name,
org.apache.logging.log4j.Level level,
boolean additive)
Constructor that sets the name, level and additive values. |
protected |
AsyncLoggerConfig(String name,
List<AppenderRef> appenders,
Filter filter,
org.apache.logging.log4j.Level level,
boolean additive,
Property[] properties,
Configuration config,
boolean includeLocation)
|
Method Summary | |
---|---|
protected void |
callAppenders(LogEvent event)
Passes on the event to a separate thread that will call asyncCallAppenders(LogEvent) . |
static LoggerConfig |
createLogger(String additivity,
String levelName,
String loggerName,
String includeLocation,
AppenderRef[] refs,
Property[] properties,
Configuration config,
Filter filter)
Factory method to create a LoggerConfig. |
void |
startFilter()
Make the Filter available for use. |
void |
stopFilter()
Cleanup the Filter. |
Methods inherited from class org.apache.logging.log4j.core.config.LoggerConfig |
---|
addAppender, clearAppenders, createEvent, getAppenderRefs, getAppenders, getFilter, getLevel, getLogEventFactory, getName, getParent, getProperties, isAdditive, isIncludeLocation, log, log, removeAppender, setAdditive, setLevel, setLogEventFactory, setParent, toString |
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable |
---|
addFilter, hasFilter, isFiltered, removeFilter |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public AsyncLoggerConfig()
public AsyncLoggerConfig(String name, org.apache.logging.log4j.Level level, boolean additive)
name
- The Logger name.level
- The Level.additive
- true if the Logger is additive, false otherwise.protected AsyncLoggerConfig(String name, List<AppenderRef> appenders, Filter filter, org.apache.logging.log4j.Level level, boolean additive, Property[] properties, Configuration config, boolean includeLocation)
Method Detail |
---|
protected void callAppenders(LogEvent event)
asyncCallAppenders(LogEvent)
.
callAppenders
in class LoggerConfig
public void startFilter()
AbstractFilterable
startFilter
in class AbstractFilterable
public void stopFilter()
AbstractFilterable
stopFilter
in class AbstractFilterable
public static LoggerConfig createLogger(String additivity, String levelName, String loggerName, String includeLocation, AppenderRef[] refs, Property[] properties, Configuration config, Filter filter)
additivity
- True if additive, false otherwise.levelName
- The Level to be associated with the Logger.loggerName
- The name of the Logger.includeLocation
- "true" if location should be passed downstreamrefs
- An array of Appender names.properties
- Properties to pass to the Logger.config
- The Configuration.filter
- A Filter.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 1999-2013 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.