45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#ifndef MYX_QT_MESSAGE_LOGGER_HPP_
|
|
#define MYX_QT_MESSAGE_LOGGER_HPP_
|
|
|
|
#pragma once
|
|
|
|
#include <myx/backports/qt/common.hpp>
|
|
#include <myx/core/config.hpp>
|
|
|
|
#include <QList>
|
|
#include <QMessageLogContext>
|
|
#include <QSharedPointer>
|
|
#include <QString>
|
|
|
|
|
|
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_
|