#define defPort 13093 // Порт по умолчанию#define defTag "System" // Журнал по умолчанию// Типы сообщенийnamespace eQLCMessageT {enum eQLCMessageType{ Verbose=0, // Подробности Debug=1, // Отладка Info, // Информирующее сообщение Warning=2, // Предупреждение Error=3, // Ошибка Assert=4, // Утверждение Fatal=5 // Фатальная ошибка};}typedef eQLCMessageT::eQLCMessageType QLCMessage;/// //////// Интерфейс, позволяющий выводить в отладчик целые объекты/// /////class QLSHARED_EXPORT QLCattable{public: virtual void printDebug()=0; // Вывести отладочное сообщение с краткой информацией virtual void dump()=0; // Дамп содержимого объекта};/// ////////////// Класс отправки отладочных сообщений для QLogCat/// ///////////class QLSHARED_EXPORT ql{ static QHostAddress qlcAddress; static int port;public: ql(QString message, QLCMessage type = eQLCMessageT::Debug, QString log = defTag); // Создание объекта// ql(ql& copy); ~ql(); // То самое место, которое отправляет по завершению цепочки << // Установка сетевого адреса static void setQLogCatAddress(QHostAddress address, int port=defPort); // Функции выдачи сообщений разного уровня // Функции оператора << ql operator<<(const QString &str); ql operator<<(const QVariant val); static ql v(); // Уровень отладки подробности static ql d(); // Уровень отладки отладка static ql i(); // Уровень отладки информация static ql w(); // Уровень отладки предупреждение static ql e(); // Уровень отладки ошибка static ql a(); // Уровень отладки утверждение static ql f(); // Уровень отладки критическая ошибка // Статические функции static void v(QVariant val, QString tag = defTag); static void d(QVariant val, QString tag = defTag); static void i(QVariant val, QString tag = defTag); static void w(QVariant val, QString tag = defTag); static void e(QVariant val, QString tag = defTag); static void a(QVariant val, QString tag = defTag); static void f(QVariant val, QString tag = defTag); // Функции класса void vv(QVariant str); void dd(QVariant str); void ii(QVariant str); void ww(QVariant str); void ee(QVariant str); void aa(QVariant str); void ff(QVariant str); // Служебные функцииprotected: static void sendMessage(QString string, int type, QString log, QTime time); QString message; QString log; QLCMessage type;};