Qt HTTP Server Journalisation

Le site Qt HTTP Server enregistre les données à l'aide de la classe QLoggingCategory. Les catégories de journalisation commençant par "qt.httpserver" sont utilisées par les différentes parties du Qt HTTP Server. Elles peuvent être activées et désactivées comme décrit dans QLoggingCategory.

Pour activer ou désactiver dynamiquement ce qui est enregistré, appelez QLoggingCategory::setFilterRules(). Un serveur peut ajouter une URL pour modifier les règles de filtrage en utilisant la fonction QHttpServer::route() comme indiqué ci-dessous.

#include <QCoreApplication>
#include <QHttpServer>
#include <QLoggingCategory>

int main(int argc, char** argv)
{
    QCoreApplication app(argc, argv);
    QHttpServer server;
    auto tcpserver = std::make_unique<QTcpServer>();
    if (!tcpserver->listen(QHostAddress::LocalHost, 8000) || !server.bind(tcpserver.get()))
        return -1;
    tcpserver.release();

    server.route("/loggingFilter", [] (const QHttpServerRequest &request) {
        QString filter;
        QTextStream result(&filter);
        for (auto pair : request.query().queryItems()) {
            if (!filter.isEmpty())
                result << "\n";
            result << pair.first << "=" << pair.second;
        }
        QLoggingCategory::setFilterRules(filter);
        return filter;
    });

    return app.exec();
}

Les règles de filtrage peuvent maintenant être définies en utilisant : "http://127.0.0.1:8000/loggingFilter?qt.httpserver=true&appname.access=true". Dans ce cas, toute la journalisation de Qt HTTP Server sera activée et, en outre, la catégorie de journalisation hypothétique appname.access est activée.

Voir également QLoggingCategory et QHttpServer.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.