このページでは

QLoggingCategory Class

QLoggingCategory クラスは、ロギングインフラストラクチャにおけるカテゴリ、つまり「領域」を表します。詳細...

ヘッダー: #include <QLoggingCategory>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数はスレッドセーフです。

パブリック型

パブリック関数

QLoggingCategory(const char *category, QtMsgType enableForLevel = QtDebugMsg)
~QLoggingCategory()
const char *categoryName() const
bool isCriticalEnabled() const
bool isDebugEnabled() const
bool isEnabled(QtMsgType msgtype) const
bool isInfoEnabled() const
bool isWarningEnabled() const
void setEnabled(QtMsgType type, bool enable)
QLoggingCategory &operator()()
const QLoggingCategory &operator()() const

静的パブリックメンバー

QLoggingCategory *defaultCategory()
QLoggingCategory::CategoryFilter installFilter(QLoggingCategory::CategoryFilter filter)
void setFilterRules(const QString &rules)

マクロ

(since 6.5) Q_DECLARE_EXPORTED_LOGGING_CATEGORY(name, EXPORT_MACRO)
Q_DECLARE_LOGGING_CATEGORY(name)
Q_LOGGING_CATEGORY(name, string)
Q_LOGGING_CATEGORY(name, string, msgType)
(since 6.9) Q_STATIC_LOGGING_CATEGORY(name, string)
(since 6.9) Q_STATIC_LOGGING_CATEGORY(name, string, msgType)
qCCritical(category)
qCCritical(category, const char *message, ...)
qCDebug(category)
qCDebug(category, const char *message, ...)
(since 6.5) qCFatal(category)
(since 6.5) qCFatal(category, const char *message, ...)
qCInfo(category)
qCInfo(category, const char *message, ...)
qCWarning(category)
qCWarning(category, const char *message, ...)

詳細な説明

QLoggingCategory は、実行時に文字列によって識別される特定のロギングカテゴリを表します。カテゴリを設定することで、メッセージタイプごとにメッセージのロギングを有効または無効にすることができます。ただし、致命的なメッセージは例外であり、常に有効になっています。

メッセージタイプが有効かどうかを確認するには、isDebugEnabled()、isInfoEnabled()、isWarningEnabled()、isCriticalEnabled() のいずれかのメソッドを使用します。

Configuring Categories で説明されているように、すべてのオブジェクトは共通のレジストリによって設定されることを想定しています。また、異なるオブジェクトが同じカテゴリを表すこともあります。したがって、モジュール境界を越えてオブジェクトをエクスポートしたり、オブジェクトを直接操作したり、QLoggingCategory を継承したりすることは推奨されません。

カテゴリオブジェクトの作成

Q_DECLARE_LOGGING_CATEGORY() およびQ_LOGGING_CATEGORY() マクロを使用すると、QLoggingCategory オブジェクトを簡単に宣言・作成できます。

// in a header
Q_DECLARE_LOGGING_CATEGORY(driverUsb)

// in one source file
Q_LOGGING_CATEGORY(driverUsb, "driver.usb")

また、ライブラリの境界を越えてロギングカテゴリを使用するためのQ_DECLARE_EXPORTED_LOGGING_CATEGORY() マクロもあります。

カテゴリ名は自由に指定できますが、Logging Rules を使用してカテゴリを設定する場合は、名前を以下の規則に従う必要があります:

  • 英字と数字のみを使用してください。
  • ドットを使用して、カテゴリを共通の領域ごとにさらに構造化してください。
  • debug 、info 、warning 、およびcritical というカテゴリ名は避けてください。
  • qt というプレフィックスが付いたカテゴリ名は、Qt モジュール専用に予約されています。

Q_LOGGING_CATEGORY() によって暗黙的に定義される QLoggingCategory オブジェクトは、最初の使用時にスレッドセーフな方法で生成されます。

カテゴリ設定の確認

QLoggingCategory は、isDebugEnabled()、isInfoEnabled()、isWarningEnabled()、isCriticalEnabled()、およびisEnabled() を提供しており、指定されたメッセージタイプに対するメッセージをログに記録すべきかどうかを確認します。

qCDebug()、qCWarning()、およびqCCritical() マクロは、そのメッセージタイプがカテゴリで有効になっていない場合、引数の評価が行われないようにするため、明示的なチェックは必要ありません:

    // usbEntries() will only be called if driverUsb category is enabled
    qCDebug(driverUsb) << "devices: " << usbEntries();

デフォルトのカテゴリ設定

QLoggingCategoryのコンストラクタとQ_LOGGING_CATEGORY()マクロは、いずれもオプションのQtMsgType 引数を受け付け、これにより、深刻度がそれより低いすべてのメッセージタイプが無効化されます。つまり、次のように宣言されたカテゴリは

Q_LOGGING_CATEGORY(driverUsbEvents, "driver.usb.events", QtWarningMsg)

QtWarningMsg 、QtCriticalMsg 、QtFatalMsg 型のメッセージをログに記録しますが、QtDebugMsg およびQtInfoMsg 型のメッセージは無視します。

引数が渡されない場合、すべてのメッセージがログに記録されます。qt で始まる Qt 内部のカテゴリのみが例外として扱われます。これらについては、デフォルトではQtInfoMsg 、QtWarningMsg 、QtCriticalMsg 、およびQFatalMsg のタイプのメッセージのみがログに記録されます。

注:ログ カテゴリは、C++のビルド設定の影響を受けません。つまり、コードがデバッグシンボル付き(「デバッグビルド」)、最適化(「リリースビルド」)、またはその他の組み合わせでコンパイルされているかどうかにかかわらず、メッセージが出力されるかどうかは変わりません。

カテゴリの設定

カテゴリのデフォルト設定は、ロギングルールを設定するか、カスタムフィルタをインストールすることで上書きできます。

ロギングルール

ロギングルールを使用すると、カテゴリごとのロギングを柔軟に有効化または無効化できます。ルールはテキストで指定され、各行は次の形式でなければなりません。

    <category>[.<type>] = true|false

<category> はカテゴリ名であり、先頭または末尾の文字、あるいはその両方の位置にワイルドカード記号として* を指定できます。オプションの<type> は、debug 、info 、warning 、またはcritical のいずれかでなければなりません。この形式に合わない行は無視されます。

ルールはテキスト上の順序に従い、先頭から末尾へと評価されます。つまり、あるカテゴリやタイプに2つのルールが適用される場合、後に記述されているルールが適用されます。

ルールは、setFilterRules() を使用して設定できます:

    QLoggingCategory::setFilterRules("*.debug=false\n"
                                     "driver.usb.debug=true");

ロギングルールは、ロギング設定ファイル内の[Rules] セクションから自動的に読み込まれます。これらの設定ファイルは、QtProjectの設定ディレクトリ内で検索されるか、QT_LOGGING_CONF 環境変数で明示的に設定されます:

    [Rules]
    *.debug=false
    driver.usb.debug=true

ロギングルールは、QT_LOGGING_RULES 環境変数でも指定できます。複数のルールはセミコロンで区切って指定することも可能です:

    QT_LOGGING_RULES=*.debug=false;driver.usb.debug=true

setFilterRules() で設定されたルールは、QtProject 設定ディレクトリで指定されたルールよりも優先されます。一方、これらのルールは、QT_LOGGING_CONF で指定された設定ファイルのルールや、QT_LOGGING_RULES で設定されたルールによって上書きされる可能性があります。

評価の順序は次のとおりです:

  1. [QLibraryInfo::DataPath]/qtlogging.ini
  2. QtProject/qtlogging.ini
  3. setFilterRules()
  4. QT_LOGGING_CONF
  5. QT_LOGGING_RULES

QtProject/qtlogging.ini ファイルは、QStandardPaths::GenericConfigLocation によって返されるすべてのディレクトリ内で検索されます。

QT_LOGGING_DEBUG 環境変数を設定することで、ロギングルールがどこから読み込まれるかを確認できます。

カスタムフィルタのインストール

テキスツルールのより低レベルの代替手段として、installFilter() を使用してカスタムフィルタを実装することもできます。この場合、すべてのフィルタルールは無視されます。

カテゴリの出力

デフォルトのメッセージハンドラでカテゴリを出力するには、%{category} プレースホルダーを使用します:

    qSetMessagePattern("%{category} %{message}");

メンバ型のドキュメント

QLoggingCategory::CategoryFilter

これは、以下のシグネチャを持つ関数へのポインタのtypedefです:

void myCategoryFilter(QLoggingCategory *);

このシグネチャを持つ関数は、installFilter() を使用してインストールできます。

メンバ関数のドキュメント

[explicit] QLoggingCategory::QLoggingCategory(const char *category, QtMsgType enableForLevel = QtDebugMsg)

指定されたcategory 名を持つQLoggingCategoryオブジェクトを生成し、enableForLevel 以上の詳細度を持つすべてのメッセージを有効にします。 のデフォルト値はQtDebugMsg であり、これによりすべてのカテゴリが有効になります。

category がnullptr の場合、カテゴリ名として"default" が使用されます。

注: category は、 このオブジェクトの存続期間中、有効な値であり続ける必要があります。これを実現するには、通常、文字列リテラルを使用します。

[noexcept] QLoggingCategory::~QLoggingCategory()

QLoggingCategory オブジェクトを破棄します。

const char *QLoggingCategory::categoryName() const

カテゴリ名を返します。

[static] QLoggingCategory *QLoggingCategory::defaultCategory()

qDebug()、qInfo()、qWarning()、qCritical()、またはqFatal()などで使用されるグローバルカテゴリ「"default" 」へのポインタを返します。

注: 静的オブジェクトの破棄中、返されるポインタが null になる場合があります。また、カテゴリの所有権は譲渡されないため、このポインタを `delete ` しないでください。

[static] QLoggingCategory::CategoryFilter QLoggingCategory::installFilter(QLoggingCategory::CategoryFilter filter)

ロギングカテゴリの設定方法を制御します。

どのカテゴリとメッセージタイプを有効にするかを決定するために使用される関数 `filter ` をインストールします。filter の値が `nullptr` の場合、デフォルトのメッセージフィルタが復元されます。以前にインストールされたフィルタへのポインタを返します。

installFilter() が戻る前に、既存のすべてのQLoggingCategory オブジェクトがフィルタに渡され、フィルタはsetEnabled()を使用して各カテゴリの設定を自由に変更できます。変更されないカテゴリは、前のフィルタから引き継いだ設定を維持するため、既存のカテゴリに対するこの最初の処理段階において、新しいフィルタが前のフィルタに処理を委譲する必要はありません。

後で追加された新しいカテゴリは、新しいフィルタに渡されます。 ロギングポリシーを完全に上書きするのではなく、ごく一部のカテゴリの設定を微調整することのみを目的とするフィルターは、まず新しいカテゴリを前のフィルターに渡して標準設定を適用させ、その後、そのカテゴリがフィルターにとって特に重要なカテゴリの一つである場合に限り、必要に応じて微調整を行うことができます。 新しいフィルタをインストールするコードは、installFilter() からの戻り値を記録し、フィルタが後の呼び出しでそれを利用できるようにすることができます。

フィルタを定義する際は、異なるスレッドから呼び出される可能性があることに注意してください。ただし、並行して呼び出されることはありません。このフィルタは、QLoggingCategory から静的関数を呼び出すことはできません。

例:

static QLoggingCategory::CategoryFilter oldCategoryFilter = nullptr;

void myCategoryFilter(QLoggingCategory *category)
{
    // For a category set up after this filter is installed, we first set it up
    // with the old filter. This ensures that any driver.usb logging configured
    // by the user is kept, aside from the one level we override; and any new
    // categories we're not interested in get configured by the old filter.
    if (oldCategoryFilter)
        oldCategoryFilter(category);

    // Tweak driver.usb's logging, over-riding the default filter:
    if (qstrcmp(category->categoryName(), "driver.usb") == 0)
        category->setEnabled(QtDebugMsg, true);
}

(例えば `main()` 内で)次のようにインストールします。

oldCategoryFilter = QLoggingCategory::installFilter(myCategoryFilter);

あるいは、setFilterRules() を通じてデフォルトのフィルタを設定することもできます。

bool QLoggingCategory::isCriticalEnabled() const

このカテゴリの重大なメッセージを表示すべき場合は `true ` を返し、そうでない場合は `false ` を返します。

注: qCCritical() マクロは 、コードを実行する前にすでにこのチェックを行っています。ただし、デバッグ出力のみを目的とした、処理負荷の高いデータ生成を回避するために、このメソッドを呼び出すことが有用な場合があります。

bool QLoggingCategory::isDebugEnabled() const

このカテゴリについてデバッグメッセージを表示すべき場合は `true ` を返し、そうでない場合は `false ` を返します。

注: qCDebug() マクロは 、コードを実行する前にすでにこのチェックを行っています。ただし、デバッグ出力のみを目的とした、処理負荷の高いデータ生成を避けるために、このメソッドを呼び出すことが有用な場合があります。

bool QLoggingCategory::isEnabled(QtMsgType msgtype) const

そのカテゴリに対して、タイプが `msgtype ` のメッセージを表示すべき場合は `true ` を返し、それ以外の場合は `false ` を返します。

bool QLoggingCategory::isInfoEnabled() const

このカテゴリについて情報メッセージを表示すべき場合は `true ` を返し、そうでない場合は `false ` を返します。

注: qCInfo() マクロは 、コードを実行する前にすでにこのチェックを行っています。ただし、デバッグ出力のみを目的として、処理負荷の高いデータ生成を回避したい場合には、このメソッドを呼び出すことが有用な場合があります。

bool QLoggingCategory::isWarningEnabled() const

このカテゴリについて警告メッセージを表示すべき場合は `true ` を返し、それ以外の場合は `false ` を返します。

注: qCWarning() マクロは 、コードを実行する前にすでにこのチェックを行っています。ただし、デバッグ出力のみを目的とした、処理負荷の高いデータ生成を避けるために、このメソッドを呼び出すことが有用な場合があります。

void QLoggingCategory::setEnabled(QtMsgType type, bool enable)

カテゴリのメッセージタイプ「type 」を「enable 」に変更します。

このメソッドは、installFilter() でインストールされたフィルター内部からのみ使用することを意図しています。カテゴリのグローバルな設定方法の概要については、Configuring Categories を参照してください。

注: ` QtFatalMsg ` は変更できません。常に `true` のままとなります。

isEnabled()も参照してください 。

[static] void QLoggingCategory::setFilterRules(const QString &rules)

rules のセットを通じて、有効にするカテゴリやメッセージの種類を設定します。

例:

    QLoggingCategory::setFilterRules(QStringLiteral("driver.usb.debug=true"));

注: installFilter() を使用してカスタムカテゴリフィルターがインストールされている場合、またはユーザーがQT_LOGGING_CONF またはQT_LOGGING_RULES 環境変数を定義している場合、これらのルールは 無視される可能性があります。

QLoggingCategory &QLoggingCategory::operator()()

オブジェクトそのものを返します。これにより、QLoggingCategory 変数と、QLoggingCategory を返すファクトリメソッドの両方を、qCDebug()、qCWarning()、qCCritical()、またはqCFatal() マクロで使用できるようになります。

const QLoggingCategory &QLoggingCategory::operator()() const

オブジェクトそのものを返します。これにより、QLoggingCategory 変数と、QLoggingCategory を返すファクトリメソッドの両方を、qCDebug()、qCWarning()、qCCritical()、またはqCFatal() マクロで使用できるようになります。

マクロのドキュメント

[since 6.5] Q_DECLARE_EXPORTED_LOGGING_CATEGORY(name, EXPORT_MACRO)

ロギングカテゴリ「name 」を宣言します。このマクロを使用すると、プログラムのさまざまな部分で共有される共通のロギングカテゴリを宣言できます。

これは `Q_DECLARE_LOGGING_CATEGORY()` とまったく同じように動作します。ただし、このマクロによって宣言されるロギングカテゴリには、さらに `EXPORT_MACRO` という修飾が追加されます。これは、ロギングカテゴリをダイナミックライブラリからエクスポートする必要がある場合に役立ちます。

例:

Q_DECLARE_EXPORTED_LOGGING_CATEGORY(lcCore, LIB_EXPORT_MACRO)

このマクロは、クラスや関数の外側で使用する必要があります。

このマクロは Qt 6.5 で導入されました。

Q_LOGGING_CATEGORY() およびQ_DECLARE_LOGGING_CATEGORY()も参照してください 。

Q_DECLARE_LOGGING_CATEGORY(name)

ロギングカテゴリ「name 」を宣言します。このマクロは、プログラムのさまざまな部分で共有される共通のロギングカテゴリを宣言するために使用できます。

このマクロは、クラスやメソッドの外側で使用する必要があります。

Q_LOGGING_CATEGORY() およびQ_DECLARE_EXPORTED_LOGGING_CATEGORY()も参照してください 。

Q_LOGGING_CATEGORY(name, string)

ロギングカテゴリ「name 」を定義し、string 識別子の下で設定可能にします。デフォルトでは、すべてのメッセージタイプが有効になっています。

ライブラリまたは実行ファイル内の翻訳単位のうち、特定の名前を持つカテゴリを定義できるのは 1 つだけです。暗黙的に定義されたQLoggingCategory オブジェクトは、初回使用時にスレッドセーフな方法で作成されます。

このマクロは、クラスやメソッドの外で使用する必要があります。

Q_DECLARE_LOGGING_CATEGORY() およびQ_DECLARE_EXPORTED_LOGGING_CATEGORY()も参照してください 。

Q_LOGGING_CATEGORY(name, string, msgType)

ロギングカテゴリ「name 」を定義し、string という識別子の下で設定可能にします。デフォルトでは、QtMsgType 、msgType 、およびそれより深刻なレベルのメッセージが有効になっており、深刻度が低いタイプのメッセージは無効になっています。

ライブラリまたは実行ファイル内では、特定の名前を持つカテゴリを定義できる翻訳単位は1つだけです。暗黙的に定義されたQLoggingCategory オブジェクトは、最初の使用時にスレッドセーフな方法で作成されます。

このマクロは、クラスやメソッドの外側で使用する必要があります。

Q_DECLARE_LOGGING_CATEGORY()も参照してください 。

[since 6.9] Q_STATIC_LOGGING_CATEGORY(name, string)

静的ロギングカテゴリ「name 」を定義し、string という識別子の下で設定可能にします。デフォルトでは、すべてのメッセージタイプが有効になっています。

このロギングカテゴリは、static 修飾子を使用して作成されるため、同じ翻訳単位内でのみアクセス可能です。これにより、意図しないシンボル競合を回避できます。

暗黙的に定義されたQLoggingCategory オブジェクトは、初回使用時にスレッドセーフな方法で作成されます。

このマクロは、クラスやメソッドの外側で使用する必要があります。

このマクロは Qt 6.9 で導入されました。

Q_LOGGING_CATEGORY()も参照してください 。

[since 6.9] Q_STATIC_LOGGING_CATEGORY(name, string, msgType)

静的なロギングカテゴリ「name 」を定義し、string という識別子の下で設定可能にします。デフォルトでは、QtMsgType 、msgType およびそれ以上の深刻度のメッセージが有効になっており、それより深刻度の低いタイプは無効になっています。

このロギングカテゴリは、static 修飾子を使用して作成されるため、同じ翻訳単位内でのみアクセス可能です。これにより、意図しないシンボル衝突を回避できます。

暗黙的に定義されたQLoggingCategory オブジェクトは、初回使用時にスレッドセーフな方法で生成されます。

このマクロは、クラスやメソッドの外側で使用する必要があります。

このマクロは Qt 6.9 で導入されました。

Q_LOGGING_CATEGORY()も参照してください 。

qCCritical(category)

ロギングカテゴリ「category 」の重大なメッセージ用の出力ストリームを返します。

このマクロは、QLoggingCategory::isCriticalEnabled() の評価結果が `true` となるかどうかを調べるコードに展開されます。その場合、ストリームの引数が処理され、メッセージハンドラに送信されます。

例:

    QLoggingCategory category("driver.usb");
    qCCritical(category) << "a critical message";

注: 特定のカテゴリのクリティカル出力が無効になっている場合 、引数は処理されないため、副作用に依存しないでください。

QDebug::qCritical()も参照してください 。

qCCritical(category, const char *message, ...)

「message 」というクリティカルなメッセージを、「category 」というロギングカテゴリに記録します。「message 」には、C言語のprintf()関数と同様に、追加の引数で置き換えられるプレースホルダーを含めることができます。

例:

    QLoggingCategory category("driver.usb");
    qCCritical(category, "a critical message logged into category %s", category.categoryName());

注: 特定のカテゴリに対するクリティカル出力が無効になっている場合 、引数は処理されないため、副作用を当てにしないでください。

qCritical(const char *, ...)も参照してください 。

qCDebug(category)

ロギングカテゴリ「category 」のデバッグメッセージ用の出力ストリームを返します。

このマクロは、QLoggingCategory::isDebugEnabled() の評価結果がtrue となるかどうかを確認するコードに展開されます。その場合、ストリームの引数が処理され、メッセージハンドラに送信されます。

例:

    QLoggingCategory category("driver.usb");
    qCDebug(category) << "a debug message";

注: そのcategory のデバッグ出力が有効になっていない場合、引数は 処理されないため、副作用に依存しないでください。

QDebug::qDebug()も参照してください 。

qCDebug(category, const char *message, ...)

ログカテゴリ「category 」に、デバッグメッセージ「message 」を記録します。message には、C言語のprintf()関数と同様に、追加の引数で置き換えられるプレースホルダーを含めることができます。

例:

    QLoggingCategory category("driver.usb");
    qCDebug(category, "a debug message logged into category %s", category.categoryName());

注: そのcategory のデバッグ出力が有効になっていない場合、引数は 処理されないため、副作用に依存しないでください。

qDebug(const char *, ...)も参照してください 。

[since 6.5] qCFatal(category)

ロギングカテゴリ「category 」の致命的なメッセージ用の出力ストリームを返します。

デフォルトのメッセージハンドラを使用している場合、返されるストリームはアボートしてコアダンプを生成します。Windows では、デバッグビルドの場合、この関数は `_CRT_ERROR ` を報告し、デバッガをアプリケーションに接続できるようにします。

例:

    QLoggingCategory category("driver.usb");
    qCFatal(category) << "a fatal message. Program will be terminated!";

このマクロは Qt 6.5 で導入されました。

QDebug::qFatal()も参照してください 。

[since 6.5] qCFatal(category, const char *message, ...)

「message 」という致命的なメッセージを、「category 」というロギングカテゴリに記録します。「message 」には、C言語のprintf()関数と同様に、追加の引数で置き換えられるプレースホルダーが含まれている場合があります。

例:

    QLoggingCategory category("driver.usb");
    qCFatal(category, "a fatal message. Program will be terminated!");

デフォルトのメッセージハンドラを使用している場合、この関数はコアダンプを作成するために実行を中止します。Windows では、デバッグビルドの場合、この関数は `_CRT_ERROR ` を報告し、デバッガをアプリケーションに接続できるようにします。

このマクロは Qt 6.5 で導入されました。

「 qFatal(const char *, ...)」も参照してください 。

qCInfo(category)

ロギングカテゴリ「category 」の情報メッセージ用の出力ストリームを返します。

このマクロは、QLoggingCategory::isInfoEnabled() の評価結果がtrue となるかどうかを確認するコードに展開されます。その場合、ストリーム引数が処理され、メッセージハンドラに送信されます。

例:

    QLoggingCategory category("driver.usb");
    qCInfo(category) << "an informational message";

注: 特定のカテゴリのデバッグ出力が有効になっていない場合 、引数は処理されないため、副作用を当てにしないでください。

QDebug::qInfo()も参照してください 。

qCInfo(category, const char *message, ...)

「message 」という情報メッセージを、「category 」というロギングカテゴリに記録します。「message 」には、C言語のprintf()関数と同様に、追加の引数で置き換えられるプレースホルダーを含めることができます。

例:

    QLoggingCategory category("driver.usb");
    qCInfo(category, "an informational message logged into category %s", category.categoryName());

注: 特定のカテゴリのデバッグ出力が有効になっていない場合 、引数は処理されないため、副作用を当てにしないでください。

qInfo(const char *, ...)も参照してください 。

qCWarning(category)

ロギングカテゴリ「category 」の警告メッセージ用の出力ストリームを返します。

このマクロは、QLoggingCategory::isWarningEnabled() の評価結果がtrue となるかどうかを確認するコードに展開されます。その場合、ストリーム引数が処理され、メッセージハンドラに送信されます。

例:

    QLoggingCategory category("driver.usb");
    qCWarning(category) << "a warning message";

注: 特定のカテゴリの警告出力が有効になっていない場合 、引数は処理されないため、副作用を当てにしないでください。

QDebug::qWarning()も参照してください 。

qCWarning(category, const char *message, ...)

「message 」という警告メッセージを、「category 」というロギングカテゴリに記録します。「message 」には、C言語のprintf()関数と同様に、追加の引数で置き換えられるプレースホルダーを含めることができます。

例:

    QLoggingCategory category("driver.usb");
    qCWarning(category, "a warning message logged into category %s", category.categoryName());

注: 特定のカテゴリに対する警告出力が有効になっていない場合 、引数は処理されないため、副作用を当てにしないでください。

qWarning(const char *, ...)も参照してください 。

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