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)
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 유형의 메시지를 기록하지만 QtDebugMsgQtInfoMsg 유형의 메시지는 무시합니다.

인수가 전달되지 않으면 모든 메시지가 기록됩니다. qt 로 시작하는 Qt 내부 범주만 다르게 처리됩니다: 이 경우 기본적으로 QtInfoMsg, QtWarningMsg, QtCriticalMsg, QFatalMsg 유형의 메시지만 로깅됩니다.

참고: 로깅 카테고리는 C++ 빌드 구성에 영향을 받지 않습니다. 즉, 코드가 디버그 심볼('디버그 빌드'), 최적화('릴리스 빌드') 또는 기타 조합으로 컴파일되었는지 여부에 따라 메시지 출력 여부가 달라지지 않습니다.

카테고리 구성

로깅 규칙을 설정하거나 사용자 지정 필터를 설치하여 카테고리에 대한 기본 구성을 재정의할 수 있습니다.

로깅 규칙

로깅 규칙을 사용하면 유연한 방식으로 카테고리에 대한 로깅을 사용하거나 사용하지 않도록 설정할 수 있습니다. 규칙은 텍스트로 지정되며, 모든 줄의 형식은 다음과 같아야 합니다:

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

<category> 는 카테고리의 이름이며, 첫 번째 또는 마지막 문자에 와일드카드 기호로 * 를 사용하거나 두 위치 모두에 를 사용할 수 있습니다. 선택 사항인 <type>debug, info, warning 또는 critical 여야 합니다. 이 체계에 맞지 않는 줄은 무시됩니다.

규칙은 첫 번째부터 마지막까지 텍스트 순서로 평가됩니다. 즉, 카테고리/유형에 두 개의 규칙이 적용되는 경우 나중에 오는 규칙이 적용됩니다.

규칙은 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

이것은 다음 서명을 가진 함수에 대한 포인터에 대한 타입 정의입니다:

void myCategoryFilter(QLoggingCategory *);

이 서명을 가진 함수는 installFilter()로 설치할 수 있습니다.

멤버 함수 문서

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

제공된 category 이름으로 QLoggingCategory 객체를 구성하고, 기본값이 QtDebugMsg (모든 카테고리를 활성화하는)인 enableForLevel 만큼 자세한 유형의 모든 메시지를 활성화합니다.

categorynullptr 인 경우 카테고리 이름 "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 함수를 설치합니다. filternullptr 인 경우 기본 메시지 필터가 복원됩니다. 이전에 설치한 필터에 대한 포인터를 반환합니다.

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)

카테고리에 대한 메시지 유형 typeenable 으로 변경합니다.

이 방법은 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 변수와 qCDebug(), qCWarning(), qCCritical() 또는 qCFatal() 매크로에서 사용할 수 있는 QLoggingCategory 을 반환하는 팩토리 메서드를 모두 사용할 수 있습니다.

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

객체 자체를 반환합니다. QLoggingCategory 변수와 qCDebug(), qCWarning(), qCCritical() 또는 qCFatal() 매크로에서 사용할 수 있는 QLoggingCategory 을 반환하는 팩토리 메서드를 모두 사용할 수 있습니다.

매크로 문서

[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 식별자 아래에서 구성할 수 있도록 합니다. 기본적으로 모든 메시지 유형이 활성화됩니다.

라이브러리 또는 실행 파일에서 하나의 번역 단위만 특정 이름의 카테고리를 정의할 수 있습니다. 암시적으로 정의된 QLoggingCategory 객체는 처음 사용할 때 스레드 안전 방식으로 생성됩니다.

이 매크로는 클래스나 메서드 외부에서 사용해야 합니다.

Q_DECLARE_LOGGING_CATEGORY() 및 Q_DECLARE_EXPORTED_LOGGING_CATEGORY()도 참조하세요 .

Q_LOGGING_CATEGORY(name, string, msgType)

로깅 카테고리 name 를 정의하고 string 식별자 아래에서 구성할 수 있도록 합니다. 기본적으로 QtMsgType msgType 이상의 메시지는 활성화되고 이보다 낮은 심각도 유형은 비활성화됩니다.

라이브러리 또는 실행 파일에서 하나의 번역 단위만 특정 이름의 카테고리를 정의할 수 있습니다. 암시적으로 정의된 QLoggingCategory 객체는 처음 사용할 때 스레드 안전 방식으로 생성됩니다.

이 매크로는 클래스 또는 메서드 외부에서 사용해야 합니다.

Q_DECLARE_LOGGING_CATEGORY()도 참조하세요 .

qCCritical(category)

로깅 카테고리의 중요 메시지에 대한 출력 스트림 category 을 반환합니다.

매크로는 QLoggingCategory::isCriticalEnabled()가 true 으로 평가되는지 확인하는 코드로 확장됩니다. 그렇다면 스트림 인수가 처리되어 메시지 핸들러로 전송됩니다.

예시:

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

참고: 특정 카테고리에 대한 중요 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용이 발생하지 않습니다.

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()도 참조하세요 .

qCDebug(category)

로깅 카테고리의 디버그 메시지에 대한 출력 스트림 category 을 반환합니다.

매크로는 QLoggingCategory::isDebugEnabled()가 true 으로 평가되는지 확인하는 코드로 확장됩니다. 그렇다면 스트림 인수가 처리되어 메시지 핸들러로 전송됩니다.

예시:

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

참고: category 에 대한 디버그 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용이 발생하지 않습니다.

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()도 참조하세요 .

[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에 도입되었습니다.

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()도 참조하십시오 .

qCInfo(category)

로깅 카테고리의 정보 메시지에 대한 출력 스트림 category 을 반환합니다.

매크로는 QLoggingCategory::isInfoEnabled()가 true 으로 평가되는지 확인하는 코드로 확장됩니다. 그렇다면 스트림 인수가 처리되어 메시지 핸들러로 전송됩니다.

예시:

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

참고: 특정 카테고리에 대한 디버그 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용에 의존하지 마세요.

qInfo()도 참조하세요 .

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

로깅 카테고리 category 에 정보 메시지 message 를 로깅합니다. message 에는 C printf() 함수와 유사하게 추가 인수로 대체할 자리 표시자가 포함될 수 있습니다.

예시:

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

참고: 특정 카테고리에 대한 디버그 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용에 의존하지 마세요.

qInfo()도 참조하세요 .

qCWarning(category)

로깅 카테고리의 경고 메시지에 대한 출력 스트림 category 을 반환합니다.

매크로는 QLoggingCategory::isWarningEnabled()가 true 으로 평가되는지 확인하는 코드로 확장됩니다. 그렇다면 스트림 인수가 처리되어 메시지 핸들러로 전송됩니다.

예시:

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

참고: 특정 카테고리에 대한 경고 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용이 발생하지 않습니다.

qWarning()도 참조하세요 .

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

로깅 카테고리 category 에 경고 메시지 message 를 로깅합니다. message 에는 C printf() 함수와 유사하게 추가 인수로 대체할 자리 표시자가 포함될 수 있습니다.

예시:

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

참고: 특정 카테고리에 대한 경고 출력이 활성화되지 않은 경우 인수가 처리되지 않으므로 부작용이 발생하지 않습니다.

qWarning()도 참조하세요 .

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