~LoggerPrivate() { // Cleanup appenders QReadLocker appendersLocker(&m_appendersLock); foreach (AbstractAppender* appender, m_appenders) delete appender; // Cleanup device QReadLocker deviceLocker(&m_logDeviceLock); delete m_logDevice; }
/** * You probably wouldn't need to use this function directly. Global instance of logger will be destroyed automatically * at the end of your QCoreApplication execution */ Logger::~Logger() { Q_D(Logger); // Cleanup appenders QMutexLocker appendersLocker(&d->loggerMutex); qDeleteAll(d->appenders); qDeleteAll(d->categoryAppenders); // Cleanup device delete d->logDevice; appendersLocker.unlock(); delete d_ptr; }
/** * You probably wouldn't need to use this function directly. Global instance of logger will be destroyed automatically * at the end of your QCoreApplication execution */ Logger::~Logger() { Q_D(Logger); // Cleanup appenders QMutexLocker appendersLocker(&d->loggerMutex); QSet<AbstractAppender*> deleteList(QSet<AbstractAppender*>::fromList(d->appenders)); deleteList.unite(QSet<AbstractAppender*>::fromList(d->categoryAppenders.values())); qDeleteAll(deleteList); // Cleanup device delete d->logDevice; appendersLocker.unlock(); delete d_ptr; }