Apache Log4cxx
Version 1.5.0
|
The ODBCAppender sends log events to a database. More...
#include <odbcappender.h>
Public Types | |
typedef void * | SQLHDBC |
typedef void * | SQLHENV |
typedef void * | SQLHANDLE |
typedef short | SQLSMALLINT |
Public Member Functions | |
ODBCAppender () | |
virtual | ~ODBCAppender () |
void | setOption (const LogString &option, const LogString &value) override |
Set option to value . | |
void | activateOptions (helpers::Pool &p) override |
Activate the specified options. | |
void | append (const spi::LoggingEventPtr &event, helpers::Pool &) override |
Adds the event to the buffer. | |
void | close () override |
Closes the appender, flushing the buffer first then closing the default connection if it is open. | |
virtual void | flushBuffer (log4cxx::helpers::Pool &p) |
loops through the buffer of LoggingEvents, gets a sql string from getLogStatement() and sends it to execute(). | |
bool | requiresLayout () const override |
Does this appender require a layout? | |
void | setSql (const LogString &s) |
Set pre-formated statement eg: insert into LogTable (msg) values ("%m") | |
const LogString & | getSql () const |
Returns pre-formated statement eg: insert into LogTable (msg) values ("%m") | |
void | setUser (const LogString &user) |
void | setURL (const LogString &url) |
void | setPassword (const LogString &password) |
void | setBufferSize (size_t newBufferSize) |
const LogString & | getUser () const |
const LogString & | getURL () const |
const LogString & | getPassword () const |
size_t | getBufferSize () const |
Public Member Functions inherited from log4cxx::AppenderSkeleton | |
AppenderSkeleton () | |
AppenderSkeleton (const LayoutPtr &layout) | |
virtual | ~AppenderSkeleton () |
void | finalize () |
Finalize this appender by calling the derived class' close method. | |
void | addFilter (const spi::FilterPtr newFilter) override |
Add a filter to end of the filter list. | |
void | clearFilters () override |
Clear the filters chain. | |
const spi::ErrorHandlerPtr | getErrorHandler () const |
Return the currently set spi::ErrorHandler for this Appender. | |
spi::FilterPtr | getFilter () const override |
Returns the head Filter. | |
const spi::FilterPtr | getFirstFilter () const |
Return the first filter in the filter chain for this Appender. | |
LayoutPtr | getLayout () const override |
Returns the layout of this appender. | |
LogString | getName () const override |
Returns the name of this Appender. | |
const LevelPtr | getThreshold () const |
Returns this appenders threshold level. | |
bool | isAsSevereAsThreshold (const LevelPtr &level) const |
Check whether the message level is below the appender's threshold. | |
void | doAppend (const spi::LoggingEventPtr &event, helpers::Pool &pool) override |
This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method. | |
void | setErrorHandler (const spi::ErrorHandlerPtr eh) |
Set the ErrorHandler for this Appender. | |
void | setLayout (const LayoutPtr layout1) override |
Set the layout for this appender. | |
void | setName (const LogString &name1) override |
Set the name of this Appender. | |
void | setThreshold (const LevelPtr &threshold) |
Set the threshold level. | |
Public Member Functions inherited from log4cxx::Appender | |
virtual | ~Appender () |
Public Member Functions inherited from log4cxx::spi::OptionHandler | |
virtual | ~OptionHandler () |
Public Member Functions inherited from log4cxx::helpers::Object | |
virtual | ~Object () |
virtual const helpers::Class & | getClass () const =0 |
virtual bool | instanceof (const Class &clazz) const =0 |
virtual const void * | cast (const Class &clazz) const =0 |
Protected Member Functions | |
LogString | getLogStatement (const spi::LoggingEventPtr &event, helpers::Pool &p) const |
To be removed. | |
virtual void | execute (const LogString &sql, log4cxx::helpers::Pool &p) |
To be removed. | |
virtual void | closeConnection (SQLHDBC con) |
Override this to return the connection to a pool, or to clean up the resource. | |
virtual SQLHDBC | getConnection (log4cxx::helpers::Pool &p) |
Override this to link with your connection pooling system. | |
Protected Member Functions inherited from log4cxx::AppenderSkeleton | |
AppenderSkeleton (LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv) | |
void | doAppendImpl (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool) |
The ODBCAppender sends log events to a database.
Each append call adds the spi::LoggingEvent to a buffer. When the buffer is full, values are extracted from each spi::LoggingEvent and the sql insert statement executed.
The SQL insert statement pattern must be provided either in the Log4cxx configuration file using the sql parameter element or programatically by calling the setSql(String sql)
method.
The following param elements are optional:
(1) Only available when the LOG4CXX_* macros are used to issue the logging request.
For use as a base class:
Override getConnection() to pass any connection you want. Typically this is used to enable application wide connection pooling.
Override closeConnection – if you override getConnection make sure to implement closeConnection
to handle the connection you generated. Typically this would return the connection to the pool it came from.
An example configuration that writes to the data source named "LoggingDSN" is:
You may also want to consider the DBAppender class, which uses APR in order to support logging to databases apart from ODBC.
typedef void* log4cxx::db::ODBCAppender::SQLHANDLE |
typedef void* log4cxx::db::ODBCAppender::SQLHDBC |
typedef void* log4cxx::db::ODBCAppender::SQLHENV |
typedef short log4cxx::db::ODBCAppender::SQLSMALLINT |
log4cxx::db::ODBCAppender::ODBCAppender | ( | ) |
|
virtual |
|
overridevirtual |
Activate the specified options.
Reimplemented from log4cxx::AppenderSkeleton.
|
overridevirtual |
Adds the event to the buffer.
When full the buffer is flushed.
Implements log4cxx::AppenderSkeleton.
|
overridevirtual |
Closes the appender, flushing the buffer first then closing the default connection if it is open.
Implements log4cxx::Appender.
|
protectedvirtual |
Override this to return the connection to a pool, or to clean up the resource.
The default behavior holds a single connection open until the appender is closed (typically when garbage collected).
|
protectedvirtual |
To be removed.
|
virtual |
loops through the buffer of LoggingEvents, gets a sql string from getLogStatement() and sends it to execute().
Errors are sent to the errorHandler.
If a statement fails the LoggingEvent stays in the buffer!
size_t log4cxx::db::ODBCAppender::getBufferSize | ( | ) | const |
|
protectedvirtual |
Override this to link with your connection pooling system.
By default this creates a single connection which is held open until the object is garbage collected.
|
protected |
To be removed.
const LogString & log4cxx::db::ODBCAppender::getPassword | ( | ) | const |
const LogString & log4cxx::db::ODBCAppender::getSql | ( | ) | const |
Returns pre-formated statement eg: insert into LogTable (msg) values ("%m")
const LogString & log4cxx::db::ODBCAppender::getURL | ( | ) | const |
const LogString & log4cxx::db::ODBCAppender::getUser | ( | ) | const |
|
overridevirtual |
Does this appender require a layout?
Implements log4cxx::Appender.
void log4cxx::db::ODBCAppender::setBufferSize | ( | size_t | newBufferSize | ) |
|
overridevirtual |
Set option
to value
.
Supported options | Supported values | Default value |
---|---|---|
BufferSize | {int} | 1 |
ConnectionString | {any} | - |
URL | {any} | - |
DSN | {any} | - |
User | {any} | - |
Password | {any} | - |
SQL | {any} | - |
ColumnMapping | (^) | - |
(^) One value for each '?' character in the SQL value.
Reimplemented from log4cxx::AppenderSkeleton.
void log4cxx::db::ODBCAppender::setPassword | ( | const LogString & | password | ) |
void log4cxx::db::ODBCAppender::setSql | ( | const LogString & | s | ) |
Set pre-formated statement eg: insert into LogTable (msg) values ("%m")
void log4cxx::db::ODBCAppender::setURL | ( | const LogString & | url | ) |
void log4cxx::db::ODBCAppender::setUser | ( | const LogString & | user | ) |