#ifndef MYX_QT_MESSAGE_LOGGER_HPP_ #define MYX_QT_MESSAGE_LOGGER_HPP_ #pragma once #include #include #include #include #include #include namespace myx { namespace qt { class MessageLogger { public: virtual ~MessageLogger() noexcept ( true ) = default; virtual void debug( const QMessageLogContext& context, const QString& ) = 0; virtual void info( const QMessageLogContext& context, const QString& ) = 0; virtual void warning( const QMessageLogContext& context, const QString& ) = 0; virtual void critical( const QMessageLogContext& context, const QString& ) = 0; virtual void fatal( const QMessageLogContext& context, const QString& ) = 0; void setEnabled( bool v = true ) { m_enabled = v; } bool isEnabled() { return( m_enabled ); } protected: bool m_enabled { true }; }; using MessageLoggersList = QList< QSharedPointer< MessageLogger > >; extern MessageLoggersList messageLoggersList; } // namespace qt } // namespace myx #endif // ifndef MYX_QT_MESSAGE_LOGGER_HPP_