#ifndef QGLOGGER_H
#define QGLOGGER_H

#include <QObject>

class QgLoggerDockWidget;

class QgLogger : public QObject
{
    Q_OBJECT
public:
    explicit QgLogger(const QString& srcName, QObject *parent = 0);
    ~QgLogger();

    enum LogMessageType {
        DebugMsg=0,
        InfoMsg,
        SuccessMsg,
        WarningMsg,
        ErrorMsg,
        FatalMsg,
        SystemErrorMsg,
        SystemFatalMsg
    };

signals:

public slots:
    void log(LogMessageType type, const QString& msg);

    void debug(const QString& msg);
    void info(const QString& msg);
    void success(const QString& msg);
    void warning(const QString& msg);
    void error(const QString& msg);
    void fatal(const QString& msg);
    void systemError(const QString& msg);
    void SystemFatal(const QString& msg);

    void debug(const QString& msg, const QString& msg1);
    void info(const QString& msg, const QString& msg1);
    void success(const QString& msg, const QString& msg1);
    void warning(const QString& msg, const QString& msg1);
    void error(const QString& msg, const QString& msg1);
    void fatal(const QString& msg, const QString& msg1);
    void systemError(const QString& msg, const QString& msg1);
    void SystemFatal(const QString& msg, const QString& msg1);

    static void logStop();

private:
    QgLoggerDockWidget* m_w;
};

#endif // QGLOGGER_H
