Qt 日誌打印系統用法說明

寫應用程序免不了需要使用日誌來記錄或者調試一些信息,Qt一個這麼大的框架,當然免不了集成了一套日誌輸入的框架,那就是QLoggingCategory 。

廢話不多說,直接說用法:

可能常用的qDebug() qWarning等,但是不推薦,改用:

qCDebug(), qCWarning(), qCCritical()等,爲什麼呢?因爲這系列接口提供了一個額外的參數來指明是哪個模塊的日誌。

比如:

// in a header
Q_DECLARE_LOGGING_CATEGORY(driverUsb)   // 這個是聲明式(放在頭文件給其他源文件聲明使用)

// in one source file
Q_LOGGING_CATEGORY(driverUsb, "driver.usb") // 這個是定義式(只定義一次,放在源文件)
// usbEntries() will only be called if driverUsb category is enabled
    qCDebug(driverUsb) << "devices: " << usbEntries();

這樣打印出來就信息類似於:driver.usb: devices: usbEntries

更重要的是這個日誌可以通過環境變量控制是否打印(只有在啓動的時候檢查,運行以後再設置無效)

環境變量的方式如下:

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

大概可以看出來,日誌分爲debuginfowarning, or critical,4類。

並且可以根據模塊單獨設置多項打印類型。非常的方便。

參考: https://doc.qt.io/qt-5/qloggingcategory.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章