mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 14:30:39 +02:00
Merge branch 'feat/logger' into 'master'
Feat/logger See merge request spaceti-app/integrations/common/server-sdk!9
This commit is contained in:
commit
29b1c64d92
@ -3,16 +3,22 @@
|
||||
|
||||
#include <QLoggingCategory>
|
||||
#include <QFileInfo>
|
||||
#include <QDateTime>
|
||||
|
||||
Q_LOGGING_CATEGORY(sdkcore, "sdk.core");
|
||||
Q_LOGGING_CATEGORY(sdknetwork, "sdk.network");
|
||||
Q_LOGGING_CATEGORY(sdkutils, "sdk.utils");
|
||||
Q_LOGGING_CATEGORY(sdkutilsdb, "sdk.utils.db");
|
||||
Q_LOGGING_CATEGORY(sdkdb, "sdk.db");
|
||||
|
||||
namespace serversdk {
|
||||
|
||||
Logger* Logger::sConsumer = nullptr;
|
||||
//bool Logger::sShowFunction = false;
|
||||
#ifdef Q_OS_UNIX
|
||||
bool Logger::mColorOutput = true;
|
||||
#else
|
||||
bool Logger::mColorOutput = false;
|
||||
#endif
|
||||
|
||||
|
||||
void Logger::setConsumer(Logger *consumer)
|
||||
@ -23,6 +29,7 @@ void Logger::setConsumer(Logger *consumer)
|
||||
Logger::Logger(QObject *parent) : QObject(parent)
|
||||
{
|
||||
qRegisterMetaType<LoggerMessage>();
|
||||
|
||||
}
|
||||
|
||||
QList<LoggerMessage> Logger::getNewMessages(int currentCount)
|
||||
@ -43,6 +50,16 @@ QList<LoggerMessage> Logger::getNewMessages(int currentCount)
|
||||
return list;
|
||||
}
|
||||
|
||||
QString Logger::toColor(const QString &color, const QString &text)
|
||||
{
|
||||
return color + text + "\033[0m";
|
||||
}
|
||||
|
||||
void Logger::setColorOutput(bool colorOutput)
|
||||
{
|
||||
mColorOutput = colorOutput;
|
||||
}
|
||||
|
||||
|
||||
void Logger::outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
||||
{
|
||||
@ -50,23 +67,29 @@ void Logger::outputMessage(QtMsgType type, const QMessageLogContext &context, co
|
||||
|
||||
QString text;
|
||||
QString textType;
|
||||
QString colorTextType;
|
||||
|
||||
switch (type) {
|
||||
case QtDebugMsg:
|
||||
textType = QStringLiteral("debug");
|
||||
textType = QStringLiteral("DEBUG");
|
||||
colorTextType = Logger::toColor("\033[0;31m", textType);
|
||||
break;
|
||||
case QtWarningMsg:
|
||||
textType = QStringLiteral("warning");
|
||||
textType = QStringLiteral("WARN");
|
||||
colorTextType = Logger::toColor("\033[0;33m", textType);
|
||||
break;
|
||||
case QtCriticalMsg:
|
||||
textType = QStringLiteral("critical");
|
||||
textType = QStringLiteral("CRITICAL");
|
||||
colorTextType = Logger::toColor("\033[0;31m", textType);
|
||||
break;
|
||||
case QtFatalMsg:
|
||||
textType = QStringLiteral("fatal");
|
||||
textType = QStringLiteral("FATAL");
|
||||
colorTextType = Logger::toColor("\033[0;31m", textType);
|
||||
break;
|
||||
#if QT_VERSION >= 0x050500
|
||||
case QtInfoMsg:
|
||||
textType = QStringLiteral("info");
|
||||
textType = QStringLiteral("INFO");
|
||||
colorTextType = Logger::toColor("\033[0;34m", textType);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
@ -78,14 +101,19 @@ void Logger::outputMessage(QtMsgType type, const QMessageLogContext &context, co
|
||||
// Output message
|
||||
//text += QString("%1 %2:%3 %4").arg(context.category).arg(shortFile).arg(context.line).arg(msg);
|
||||
// New output syntax
|
||||
text = QStringLiteral("[%1] %2 [ %3:%4 | %5 | %6 ]")
|
||||
.arg(textType, msg, shortFile)
|
||||
.arg(context.line)
|
||||
.arg(context.function, context.category);
|
||||
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
|
||||
const QString textTypeUni = mColorOutput ? colorTextType : textType;
|
||||
|
||||
text = QStringLiteral("[%1 %2 %3] %4") // [ %3:%4 | %5 | %6 ]")
|
||||
.arg(now.toString("dd-MM-yyyy hh:mm:ss.z"))
|
||||
.arg(textTypeUni)
|
||||
.arg(context.category)
|
||||
.arg(msg);
|
||||
|
||||
QTextStream out(stderr);
|
||||
out << text << "\n"; //.toLocal8Bit() + "\n";
|
||||
//out.flush(); // INVSDK-37 ORK-102 crash on windows when flush() -> possible threading problem
|
||||
|
||||
if (type == QtFatalMsg)
|
||||
abort();
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
Q_DECLARE_LOGGING_CATEGORY(sdkcore)
|
||||
Q_DECLARE_LOGGING_CATEGORY(sdknetwork)
|
||||
Q_DECLARE_LOGGING_CATEGORY(sdkutils)
|
||||
Q_DECLARE_LOGGING_CATEGORY(sdkutilsdb)
|
||||
Q_DECLARE_LOGGING_CATEGORY(sdkdb)
|
||||
|
||||
namespace serversdk {
|
||||
@ -94,6 +95,10 @@ public:
|
||||
virtual void pushMessage(const LoggerMessage& logmsg);
|
||||
QList<serversdk::LoggerMessage> getNewMessages(int currentCount);
|
||||
|
||||
static QString toColor(const QString &color, const QString &text);
|
||||
|
||||
/** I will enable color output for terminal ( linux only ) */
|
||||
void setColorOutput(bool colorOutput);
|
||||
|
||||
signals:
|
||||
void messageReceived(const serversdk::LoggerMessage &message);
|
||||
@ -101,6 +106,7 @@ signals:
|
||||
private:
|
||||
QList<LoggerMessage> mLogMessages; //!< Test
|
||||
QMutex mMutex;
|
||||
static bool mColorOutput;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -3,15 +3,13 @@
|
||||
#include <QCoreApplication>
|
||||
#include <QCommandLineParser>
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
serversdk::initAppLogger();
|
||||
|
||||
qCDebug(sdkcore) << "test message";
|
||||
qCDebug(sdkcore) << "Application starting";
|
||||
|
||||
QCoreApplication app(argc, argv);
|
||||
QCoreApplication::setApplicationName("example-app");
|
||||
QCoreApplication::setApplicationVersion("0.1.0");
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user