fix it
This commit is contained in:
parent
4bd3b836f8
commit
74293535b8
@ -31,6 +31,9 @@
|
|||||||
#include <QMessageLogger>
|
#include <QMessageLogger>
|
||||||
|
|
||||||
|
|
||||||
|
QtMessageHandler DebugServerHandler::s_oldLogMessageHandler = nullptr;
|
||||||
|
QList<QWebSocket*> DebugServerHandler::s_websocketClients;
|
||||||
|
|
||||||
namespace nymeaserver {
|
namespace nymeaserver {
|
||||||
|
|
||||||
DebugServerHandler::DebugServerHandler(QObject *parent) :
|
DebugServerHandler::DebugServerHandler(QObject *parent) :
|
||||||
@ -52,7 +55,7 @@ DebugServerHandler::DebugServerHandler(QObject *parent) :
|
|||||||
|
|
||||||
//m_timer->start();
|
//m_timer->start();
|
||||||
|
|
||||||
qInstallMessageHandler(&DebugServerHandler::consoleLogHandler);
|
s_oldLogMessageHandler = qInstallMessageHandler(&logMessageHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
||||||
@ -337,6 +340,14 @@ HttpReply *DebugServerHandler::processDebugRequest(const QString &requestPath)
|
|||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DebugServerHandler::logMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message) {
|
||||||
|
s_oldLogMessageHandler(type, context, message);
|
||||||
|
|
||||||
|
foreach (QWebSocket *client, s_websocketClients) {
|
||||||
|
client->sendTextMessage(message + "\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QByteArray DebugServerHandler::loadResourceData(const QString &resourceFileName)
|
QByteArray DebugServerHandler::loadResourceData(const QString &resourceFileName)
|
||||||
{
|
{
|
||||||
QFile resourceFile(QString(":%1").arg(resourceFileName));
|
QFile resourceFile(QString(":%1").arg(resourceFileName));
|
||||||
@ -1198,43 +1209,9 @@ QByteArray DebugServerHandler::createErrorXmlDocument(HttpReply::HttpStatusCode
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void consoleLogHandler(QtMsgType type, const QMessageLogContext& context, const QString& message)
|
|
||||||
{
|
|
||||||
QString messageString;
|
|
||||||
QString timeString = QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz");
|
|
||||||
switch (type) {
|
|
||||||
case QtInfoMsg:
|
|
||||||
messageString = QString(" I %1 | %2: %3").arg(timeString).arg(context.category).arg(message);
|
|
||||||
fprintf(stdout, " I | %s: %s\n", context.category, message.toUtf8().data());
|
|
||||||
break;
|
|
||||||
case QtDebugMsg:
|
|
||||||
messageString = QString(" I %1 | %2: %3").arg(timeString).arg(context.category).arg(message);
|
|
||||||
fprintf(stdout, " I | %s: %s\n", context.category, message.toUtf8().data());
|
|
||||||
break;
|
|
||||||
case QtWarningMsg:
|
|
||||||
messageString = QString(" W %1 | %2: %3").arg(timeString).arg(context.category).arg(message);
|
|
||||||
fprintf(stderr, " W | %s: %s\n", context.category, message.toUtf8().data());
|
|
||||||
break;
|
|
||||||
case QtCriticalMsg:
|
|
||||||
messageString = QString(" C %1 | %2: %3").arg(timeString).arg(context.category).arg(message);
|
|
||||||
fprintf(stderr, " C | %s: %s\n", context.category, message.toUtf8().data());
|
|
||||||
break;
|
|
||||||
case QtFatalMsg:
|
|
||||||
messageString = QString(" F %1 | %2: %3").arg(timeString).arg(context.category).arg(message);
|
|
||||||
fprintf(stderr, " F | %s: %s\n", context.category, message.toUtf8().data());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
fflush(stdout);
|
|
||||||
fflush(stderr);
|
|
||||||
|
|
||||||
foreach (QWebSocket *client, DebugServerHandler::s_websocketClients) {
|
|
||||||
client->sendTextMessage(messageString + "\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebugServerHandler::onTimeout()
|
void DebugServerHandler::onTimeout()
|
||||||
{
|
{
|
||||||
foreach (QWebSocket *client, DebugServerHandler::s_websocketClients) {
|
foreach (QWebSocket *client, s_websocketClients) {
|
||||||
client->sendTextMessage("Hallo!\n");
|
client->sendTextMessage("Hallo!\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1242,7 +1219,7 @@ void DebugServerHandler::onTimeout()
|
|||||||
void DebugServerHandler::onWebsocketClientConnected()
|
void DebugServerHandler::onWebsocketClientConnected()
|
||||||
{
|
{
|
||||||
QWebSocket *client = m_websocketServer->nextPendingConnection();
|
QWebSocket *client = m_websocketServer->nextPendingConnection();
|
||||||
DebugServerHandler::s_websocketClients.append(client);
|
s_websocketClients.append(client);
|
||||||
qCDebug(dcWebServer()) << "DebugServer: New websocket client connected:" << client->peerAddress().toString();
|
qCDebug(dcWebServer()) << "DebugServer: New websocket client connected:" << client->peerAddress().toString();
|
||||||
|
|
||||||
connect(client, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onWebsocketClientError(QAbstractSocket::SocketError)));
|
connect(client, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onWebsocketClientError(QAbstractSocket::SocketError)));
|
||||||
@ -1253,7 +1230,7 @@ void DebugServerHandler::onWebsocketClientDisconnected()
|
|||||||
{
|
{
|
||||||
QWebSocket *client = static_cast<QWebSocket *>(sender());
|
QWebSocket *client = static_cast<QWebSocket *>(sender());
|
||||||
qCDebug(dcWebServer()) << "DebugServer: Websocket client disconnected" << client->peerAddress().toString();
|
qCDebug(dcWebServer()) << "DebugServer: Websocket client disconnected" << client->peerAddress().toString();
|
||||||
DebugServerHandler::s_websocketClients.removeAll(client);
|
s_websocketClients.removeAll(client);
|
||||||
client->deleteLater();
|
client->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -38,10 +38,11 @@ public:
|
|||||||
|
|
||||||
HttpReply *processDebugRequest(const QString &requestPath);
|
HttpReply *processDebugRequest(const QString &requestPath);
|
||||||
|
|
||||||
static QList<QWebSocket *> s_websocketClients;
|
|
||||||
static void consoleLogHandler(QtMsgType type, const QMessageLogContext& context, const QString& message);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
static QtMessageHandler s_oldLogMessageHandler;
|
||||||
|
static QList<QWebSocket*> s_websocketClients;
|
||||||
|
static void logMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message);
|
||||||
|
|
||||||
QTimer *m_timer = nullptr;
|
QTimer *m_timer = nullptr;
|
||||||
QWebSocketServer *m_websocketServer = nullptr;
|
QWebSocketServer *m_websocketServer = nullptr;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user