Apache Log4cxx: log4cxx::db::ODBCAppender Class Reference (original) (raw)

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

activateOptions (helpers::Pool &) override

Activate the options that were previously set with calls to option setters.

void

setOption (const LogString &option, const LogString &value) override

Set option to value.

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](classlog4cxx%5F1%5F1spi%5F1%5F1ErrorHandler.html) 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 ()

virtual void

addFilter (const spi::FilterPtr newFilter)=0

Add a filter to the end of the filter list.

virtual spi::FilterPtr

getFilter () const =0

Returns the head Filter.

virtual void

clearFilters ()=0

Clear the list of filters by removing all the filters in it.

virtual void

close ()=0

Release any resources allocated within the appender such as file handles, network connections, etc.

virtual void

doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)=0

Log in [Appender](classlog4cxx%5F1%5F1Appender.html "Implement this interface for your own strategies for outputting log statements.") specific way.

virtual LogString

getName () const =0

Get the name of this appender.

virtual void

setLayout (const LayoutPtr layout)=0

Set the Layout for this appender.

virtual LayoutPtr

getLayout () const =0

Returns this appenders layout.

virtual void

setName (const LogString &name)=0

Set the name of this appender.

virtual bool

requiresLayout () const =0

Configurators call this method to determine if the appender requires a layout.

- Public Member Functions inherited from log4cxx::spi::OptionHandler

virtual

~OptionHandler ()

virtual void

activateOptions (helpers::Pool &p)=0

Activate the options that were previously set with calls to option setters.

virtual void

setOption (const LogString &option, const LogString &value)=0

Set option to value.

- 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

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:

An example configuration that writes to the data source named "LoggingDSN" is:

<log4j:configuration xmlns:log4j="" title="undefined" rel="noopener noreferrer">http://jakarta.apache.org/log4j/"\>

<appender name="PreparedAppender" class="ODBCAppender">

</appender>

<appender name="ASYNC" class="AsyncAppender">

<appender-ref ref="PreparedAppender"/>

</appender>

<root>

<priority value ="INFO" />

<appender-ref ref="ASYNC" />

</root>

</log4j:configuration>

You may also want to consider the DBAppender class, which uses APR in order to support logging to databases apart from ODBC.