한국어
Qt
 

메시지 핸들러는 디버그 메시지, 경고, 치명적인 오류 메시지를 한곳에 모아 출력하게하는 기능이다. 자신의 메시지 처리기를(C++표준 출력이나 기타 디버거로 출력하도록) 구현하면 응용프로그램 전체 디버그 출력을 완벽하게 제어 할 수 있다. 이것은 로그메세지 출력을 파일 또는 다른 서브시스템으로 리다이렉션(Redirection) 할 수 있음을 의미한다.

 

다음은 예제 소스코드이다. (Qml의 디버스 메세지도 이곳에서 출력된다.)

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

void logOutputHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    QByteArray localMsg = msg.toLocal8Bit();
    switch (type) {
    case QtDebugMsg:
        fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtInfoMsg:
        fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtWarningMsg:
        fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtCriticalMsg:
        fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtFatalMsg:
        fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        abort();
    }
    fflush(stderr);
}

int main(int argc, char *argv[])
{
    qInstallMessageHandler(logOutputHandler); // 메세지 핸들러 등록

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

 

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 116910
80 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 6332
79 QSocketNotifier로 파일 디스크립터의 활동감지 makersweb 2019.08.28 6403
78 리눅스에서 Qt4.8기반 어플리케이션의 한글입력 file makersweb 2018.11.29 6457
77 qbs 사용 방법(Helloworld) file makersweb 2019.10.23 6487
76 OpacityMask 예제 file makersweb 2023.01.26 6521
75 재진입(Reentrancy) 및 스레드 안전성(Thread-Safety) makersweb 2020.04.19 6541
74 QtWayland와 ivi-compositor file makersweb 2018.12.27 6542
73 타임스탬프( timestamp) 유닉스 시간 makersweb 2017.10.19 6576
72 main함수 명령줄 옵션 해석 makersweb 2020.09.01 6620
71 Qt Property(속성) 시스템 makersweb 2023.01.08 6620
70 컨테이너 클래스 - QVector makersweb 2020.03.17 6780
69 다국어 지원 어플리케이션 개발 file makersweb 2018.01.27 6840
68 구글 클라우드 Speech-To-Text API를 Qt기반(C++, Qml)테스트 [7] file makersweb 2019.01.20 6930
67 Qt Version확인 방법 makersweb 2018.03.29 6983
66 Qt 3D Studio 시작하기 file makersweb 2018.01.11 6992
65 Qt Creator에서 Qt의존성 라이브러리 자동복사하기 file makersweb 2019.10.19 6994
64 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 7024
63 임의의 메모리 영역(QImage)에 QPainter를 이용하여 그리기 file makersweb 2017.12.19 7240
62 QML 코딩 규칙 makersweb 2021.09.05 7586
61 Qt Bluetooth를 이용한 시리얼(Serial) 통신 file makersweb 2019.02.17 7591