Thanks, Deepak
So if want to close one created looger and release its releated resources, what should I do? using smart pointer, I don't need to delete the objects.
But How can I release the resources? Do I need to call the below API to release the resources?
//close the appender
//close all appenders associated with the logger

Or some other APIs I need to call to release all resources to avoid memory leak?

Thank you.

2009/10/14 deepak singh <>
You should use smart pointer instead.
log4cxx::LayoutPtr layoutPtr(new log4cxx::PatternLayout("%c-%p (%d{dd MMM yyyy HH:mm:ss}) [%-5t] %m%n"));
log4cxx::AppenderPtr appenderPtr( new log4cxx::ConsoleAppender(layoutPtr, "System.err"));


On Wed, Oct 14, 2009 at 8:41 AM, Zhou Tao <> wrote:
I am using the log4cxx-0.10.0. And at the begining of the application, I create the log4cxx instances including Logger, FileAppender, PatternLayout etc. Sometime within the application, I need to destroy the instances.
For example,
To create the below objects at the begining,
_layout = new log4cxx::PatternLayout(format);
_fileAppender = new log4cxx::RollingFileAppender();
Then somewhere to remove the above objects like the below,
delete _fileAppender;
delete _layout;
However when deleting the objects, always core dump on windows. On unix, when the application exit, also get a core dump.
Then how to clean up the log4cxx instances or a sequence is required when deleting the objects? or some example code?
Any suggestion are highly appreciated.