Qt HTTP 服务器日志

Qt HTTP 服务器使用 QLoggingCategory 类进行日志记录。以 "qt.httpserver" 开头的日志类别由 Qt Http Server 的不同部分使用。这些类别可以像在 QLoggingCategory 中描述的那样启用和禁用。

要动态启用或禁用正在记录的内容,请调用 QLoggingCategory::setFilterRules()。服务器可以通过使用以下所示的 QHttpServer::route() 函数将 URL 添加到更改过滤器规则。

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

int main(int argc, char** argv)
{
    QCoreApplication app(argc, argv);
    QHttpServer server;
    server.listen(QHostAddress::LocalHost, 8000);

    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();
}

现在可以使用以下方式设置过滤器规则:"http://127.0.0.1:8000/loggingFilter?qt.httpserver=true&appname.access=true"。在这种情况下,将启用所有 Qt HTTP 服务器日志记录,并且还启用了假设的日志类别 "appname.access"。

另请参阅 QLoggingCategoryQHttpServer

© 2024 Qt 公司有限公司。在此处包含的文档贡献归其各自的版权所有者所有。本手册提供的文档受GNU 自由文档许可证版本 1.3 的条款许可,由自由软件基金会发布。Qt 和相关徽标是芬兰的 Qt 公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。