Qt HTTP Server 记录日志
Qt HTTP Server 使用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; 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(); }
现在可以使用"http://127.0.0.1:8000/loggingFilter?qt.httpserver=true&appname.access=true"
设置过滤规则。在这种情况下,所有Qt HTTP Server 日志都将启用,此外,假设日志类别appname.access
也将启用。
另请参阅 QLoggingCategory 和QHttpServer 。
© 2025 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.