First. it would be best for you to define your custom appenders in a namespace 
other than log4cxx.

Second, you declare a constructor, destructor and close method for 
VirtualAppender, but you did not provide an implementation.  Unless you 
compiled and linked in a file that looked like:

#include "VirtualAppender.h"
log4cxx::VirtualAppender::VirtualAppender() {
}

log4cxx::VirtualAppender::~VirtualAppender() {
}

void log4cxx::VirtualAppender::close() {
}

Then the linker would be expected to complain that there was no implementation 
provided.

Reply via email to