org.apache.logging.log4j.core.appender.db
Class AbstractDatabaseAppender<T extends AbstractDatabaseManager>

java.lang.Object
  extended by org.apache.logging.log4j.core.filter.AbstractFilterable
      extended by org.apache.logging.log4j.core.appender.AbstractAppender<LogEvent>
          extended by org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender<T>
Type Parameters:
T - Specifies which type of AbstractDatabaseManager this Appender requires.
All Implemented Interfaces:
Appender<LogEvent>, Filterable, LifeCycle
Direct Known Subclasses:
JDBCAppender, JPAAppender, NoSQLAppender

public abstract class AbstractDatabaseAppender<T extends AbstractDatabaseManager>
extends AbstractAppender<LogEvent>

An abstract Appender for writing events to a database of some type, be it relational or NoSQL. All database appenders should inherit from this base appender. Three implementations are currently provided: JDBC, JPA, and NoSQL.


Field Summary
 
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
LOGGER
 
Constructor Summary
protected AbstractDatabaseAppender(String name, Filter filter, boolean handleException, T manager)
          Instantiates the base appender.
 
Method Summary
 void append(LogEvent event)
          Log in Appender specific way.
 Layout<LogEvent> getLayout()
          This always returns null, as database appenders do not use a single layout.
 T getManager()
          Returns the underlying manager in use within this appender.
protected  void replaceManager(T manager)
          Replaces the underlying manager in use within this appender.
 void start()
          Start the Appender.
 void stop()
          Stop the Appender.
 
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractAppender
error, error, error, getHandler, getName, isExceptionSuppressed, isStarted, setHandler, toString
 
Methods inherited from class org.apache.logging.log4j.core.filter.AbstractFilterable
addFilter, getFilter, hasFilter, isFiltered, removeFilter, startFilter, stopFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractDatabaseAppender

protected AbstractDatabaseAppender(String name,
                                   Filter filter,
                                   boolean handleException,
                                   T manager)
Instantiates the base appender.

Parameters:
name - The appender name.
filter - The filter, if any, to use.
handleException - Whether logging exceptions should be reported to the application.
manager - The matching AbstractDatabaseManager implementation.
Method Detail

getLayout

public final Layout<LogEvent> getLayout()
This always returns null, as database appenders do not use a single layout. The JPA and NoSQL appenders do not use a layout at all. The JDBC appender has a layout-per-column pattern.

Specified by:
getLayout in interface Appender<LogEvent>
Overrides:
getLayout in class AbstractAppender<LogEvent>
Returns:
null.

getManager

public final T getManager()
Returns the underlying manager in use within this appender.

Returns:
the manager.

start

public final void start()
Description copied from class: AbstractAppender
Start the Appender.

Specified by:
start in interface LifeCycle
Overrides:
start in class AbstractAppender<LogEvent>

stop

public final void stop()
Description copied from class: AbstractAppender
Stop the Appender.

Specified by:
stop in interface LifeCycle
Overrides:
stop in class AbstractAppender<LogEvent>

append

public final void append(LogEvent event)
Description copied from interface: Appender
Log in Appender specific way. When appropriate, Loggers will call the doAppend method of appender implementations in order to log.

Parameters:
event - The LogEvent.

replaceManager

protected final void replaceManager(T manager)
Replaces the underlying manager in use within this appender. This can be useful for manually changing the way log events are written to the database without losing buffered or in-progress events. The existing manager is released only after the new manager has been installed. This method is thread-safe.

Parameters:
manager - The new manager to install.


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.