org.apache.log4j.db
Class DBAppender
java.lang.Object
|
+--org.apache.log4j.spi.ComponentBase
|
+--org.apache.log4j.AppenderSkeleton
|
+--org.apache.log4j.db.DBAppender
- All Implemented Interfaces:
- Appender, Component, OptionHandler
- public class DBAppender
- extends AppenderSkeleton
The DBAppender inserts loggin events into three database tables in a format
independent of the Java programming language. The three tables that
DBAppender inserts to must exists before DBAppender can be used. These tables
may be created with the help of SQL scripts found in the
src/java/org/apache/log4j/db/dialect directory. There is a
specific script for each of the most popular database systems. If the script
for your particular type of database system is missing, it should be quite
easy to write one, taking example on the already existing scripts. If you
send them to us, we will gladly include missing scripts in future releases.
If the JDBC driver you are using supports the
java.sql.Statement#getGeneratedKeys
method introduced in JDBC 3.0
specification, then you are all set. Otherwise, there must be an
SQLDialect
appropriate for your database system. Currently, we have
dialects for PostgreSQL, MySQL, Oracle and MsSQL. As mentioed previously, an
SQLDialect is required only if the JDBC driver for your database system does
not support the getGeneratedKeys
method.
RDBMS |
supports
getGeneratedKeys() method |
specific SQLDialect support |
PostgreSQL |
NO |
present and used |
MySQL |
YES |
present, but not actually needed or used |
Oracle |
YES |
present, but not actually needed or used |
DB2 |
YES |
not present, and not needed or used |
MsSQL |
YES |
not present, and not needed or used |
HSQL |
NO |
present and used |
Performance: Experiments show that writing a single event into the
database takes approximately 50 milliseconds, on a "standard" PC. If pooled
connections are used, this figure drops to under 10 milliseconds. Note that
most JDBC drivers already ship with connection pooling support.
Configuration DBAppender can be configured programmatically, or using
JoranConfigurator
. Example
scripts can be found in the tests/input/db directory.
- Since:
- 1.3
- Author:
- Ceki Gülcü, Ray DeCampo
Method Summary |
void |
activateOptions()
Called to configure appender for use after configuration. |
protected void |
append(LoggingEvent event)
Subclasses of AppenderSkeleton should implement this method
to perform actual logging. |
void |
close()
Release any resources allocated within the appender such as file handles,
network connections, etc. |
ConnectionSource |
getConnectionSource()
|
boolean |
getLocationInfo()
Returns value of the LocationInfo property which determines whether
caller's location info is written to the database. |
boolean |
requiresLayout()
Gets whether appender requires a layout. |
void |
setConnectionSource(ConnectionSource connectionSource)
|
void |
setLocationInfo(boolean locationInfo)
If true, the information written to the database will include caller's
location information. |
Methods inherited from class org.apache.log4j.AppenderSkeleton |
addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isActive, isAsSevereAsThreshold, isAsSevereAsThreshold, isClosed, setErrorHandler, setLayout, setName, setThreshold |
DBAppender
public DBAppender()
activateOptions
public void activateOptions()
- Description copied from class:
AppenderSkeleton
- Called to configure appender for use after configuration.
- Overrides:
activateOptions
in class AppenderSkeleton
getConnectionSource
public ConnectionSource getConnectionSource()
- Returns:
- Returns the connectionSource.
setConnectionSource
public void setConnectionSource(ConnectionSource connectionSource)
- Parameters:
connectionSource
- The connectionSource to set.
append
protected void append(LoggingEvent event)
- Description copied from class:
AppenderSkeleton
- Subclasses of
AppenderSkeleton
should implement this method
to perform actual logging. See also AppenderSkeleton.doAppend
method.
- Overrides:
append
in class AppenderSkeleton
close
public void close()
- Description copied from interface:
Appender
- Release any resources allocated within the appender such as file handles,
network connections, etc.
It is a programming error to append to a closed appender.
getLocationInfo
public boolean getLocationInfo()
- Returns value of the LocationInfo property which determines whether
caller's location info is written to the database.
setLocationInfo
public void setLocationInfo(boolean locationInfo)
- If true, the information written to the database will include caller's
location information. Due to performance concerns, by default no location
information is written to the database.
requiresLayout
public boolean requiresLayout()
- Gets whether appender requires a layout.
- Returns:
- false
Copyright © 2000-2006 Apache Software Foundation.
Licensed under the Apache License, Version 2.0.