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 가 활성화됩니다.

QLoggingCategoryQHttpServer도 참조하세요 .

© 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.