Qt HTTP サーバのログ
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も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。