이 페이지에서

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 중 하나여야 합니다. 이 형식에 맞지 않는 줄은 무시됩니다.

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

규칙은 ` 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 식별자 하에서 구성 가능하게 만듭니다. 기본적으로 모든 메시지 유형이 활성화되어 있습니다.

라이브러리나 실행 파일 내에서는 하나의 번역 단위만 특정 이름을 가진 범주를 정의할 수 있습니다. 암시적으로 정의된 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()도 참조하십시오 .

[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, ...)

로깅 범주인 category 에 중요 메시지인 message 를 기록합니다. 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, ...)

로깅 범주 category 에서 치명적 메시지 message 를 기록합니다. 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, ...)

로깅 범주( category)에 정보 메시지 message 를 기록합니다. 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, ...)

로깅 범주( category)에 경고 메시지 message 를 기록합니다. 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.