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.i...@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 <zhoutao...@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
>>
>
>

Reply via email to