* @brief iLogger interface implementation
* @author Enar Vaikene
*
- * Copyright (c) 2011-2012 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
#include <QHash>
#include <QExplicitlySharedDataPointer>
#include <QSharedData>
+#include <QScopedPointer>
class QThread;
namespace Internal {
/// Default fatal error message handler
-void defFatalMsgHandler(QString const & msg, QString const & source, QString const & where);
+[[noreturn]] void defFatalMsgHandler(QString const & msg, QString const & source, QString const & where);
/**
* Logger source.
public:
+ /**
+ * Destroys the iLogger interface instance
+ */
+ static void destroyInstance();
+
Logger();
virtual ~Logger();
virtual void setDefaultSource(QString const & source);
- virtual iLogger::Severity severity(QString const & source = 0);
+ virtual iLogger::Severity severity(QString const & source = QString());
- virtual void setSeverity(iLogger::Severity severity, QString const & source = 0);
+ virtual void setSeverity(iLogger::Severity severity, QString const & source = QString());
- virtual uint maxSize(QString const & source = 0);
+ virtual uint maxSize(QString const & source = QString());
- virtual void setMaxSize(uint maxSize, QString const & source = 0);
+ virtual void setMaxSize(uint maxSize, QString const & source = QString());
- virtual uint maxCount(QString const & source = 0);
+ virtual uint maxCount(QString const & source = QString());
- virtual void setMaxCount(uint maxCount, QString const & source = 0);
+ virtual void setMaxCount(uint maxCount, QString const & source = QString());
virtual iLogger::Severity consoleSeverity() const { return mConsoleSeverity; }
virtual void setConsoleSeverity(iLogger::Severity severity);
- virtual void write(Severity severity, QString const & msg, QString const & source = 0, QString const & where = 0);
+ virtual void write(Severity severity, QString const & msg, QString const & source = QString(), QString const & where = QString());
virtual QString printf(char const * const fmt, ...) const;
QHash<QString, QExplicitlySharedDataPointer<LoggerSource> > mSources;
/// Worker thread
- QThread * mThread;
+ QScopedPointer<QThread> mThread;
/// Worker object
- LoggerWorker * mWorker;
+ QScopedPointer<LoggerWorker> mWorker;
private: // Methods