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
_appenderPtr->close();
 
//close all appenders associated with the logger
_loggerPtr->closeNestedAppenders();
_loggerPtr->removeAllAppenders();

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

Thank you.

2009/10/14 deepak singh <deepak.iitg@gmail.com>
You should use smart pointer instead.
e.g
    log4cxx::LogManager::resetConfiguration(); 
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"));
log4cxx::BasicConfigurator::configure(appenderPtr);

Thanks
Deepak


On Wed, Oct 14, 2009 at 8:41 AM, Zhou Tao <zhoutao109@gmail.com> wrote:
Experts,
 
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.
Thanks,
Tom