Apache Log4cxx: custom-appender.cpp (original) (raw)

This example shows how to extend Log4cxx with a new appender.

using namespace LOG4CXX_NS;

namespace com::foo {

class NullWriterAppender : public AppenderSkeleton {

public:

NullWriterAppender(){}

void close() override{}

bool requiresLayout() const override {

return false;

}

void append(const spi::LoggingEventPtr& event, helpers::Pool& p) override {

}

void activateOptions(helpers::Pool& ) override {

}

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

if (helpers::StringHelper::equalsIgnoreCase

( option

, LOG4CXX_STR("SOMEVALUE")

, LOG4CXX_STR("somevalue")

))

{

}

}

};

}

int main( int argc, char** argv )

{

xml::DOMConfigurator::configure( "custom-appender.xml" );

LoggerPtr rootLogger = Logger::getRootLogger();

LoggerPtr nullLogger = Logger::getLogger( "NullLogger" );

LOG4CXX_INFO( rootLogger, "This is some root message" );

LOG4CXX_INFO( nullLogger, "This message will be discarded" );

}

#define LOG4CXX_INFO(logger, message)

Add a new logging event containing message to attached appender(s) if logger is enabled for INFO even...

Definition: log4cxx/logger.h:2318

#define LOG4CXX_CAST_ENTRY(Interface)

Definition: object.h:158

#define IMPLEMENT_LOG4CXX_OBJECT(object)

Definition: object.h:66

#define END_LOG4CXX_CAST_MAP()

Definition: object.h:152

#define DECLARE_LOG4CXX_OBJECT(object)

Definition: object.h:43

#define LOG4CXX_CAST_ENTRY_CHAIN(Interface)

Definition: object.h:164

#define BEGIN_LOG4CXX_CAST_MAP()

Definition: object.h:146