中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

QSettings中怎么對Log4Qt進行配置

發布時間:2021-06-15 11:16:50 來源:億速云 閱讀:275 作者:Leah 欄目:web開發

QSettings中怎么對Log4Qt進行配置 ,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

在 Log4Qt 的初始化過程中,除了會使用環境變量之外,它還會通過 QSettings 讀取配置。也就是說,在使用 Logger 之前,需要針對  QSettings 做一些基本設置:

  • 組織名和應用名:通過 QCoreApplication::setOrganizationName() 和  QCoreApplication::setApplicationName() 指定,并且這些名稱需要能被 QSettings 找到。

  • 分組:需要有一個名為 Log4Qt 的分組,在這個組下面還要有一個子組 Properties。

  • 配置內容:需要符合 Log4Qt 配置語法規則。

在 Windows  中,可以在注冊表中添加相應的配置。例如,路徑:計算機\HKEY_CURRENT_USER\SOFTWARE\MyOrganisation\MyApplication\Log4Qt\Properties:

QSettings中怎么對Log4Qt進行配置

當然,手動添加比較麻煩。有一個簡單的辦法,就是下面所說的用程序設置 - setupLog4Qt()。

1使用 QSettings 配置

為了實現這個功能,可以自定義 QCoreApplication:

#ifndef MY_APPLICATION_H #define MY_APPLICATION_H  #include <QCoreApplication>  class MyApplication : public QCoreApplication {     Q_OBJECT  public:     MyApplication(int &argc, char **argv);     ~MyApplication();      void setupLog4Qt(); };  #endif // MY_APPLICATION_H

在構造函數中,為應用程序設置一些基本信息 - OrganizationName、ApplicationName 以及  OrganizationDomain,以允許 QSettings 能正確的進行讀寫。

在 setupLog4Qt() 中,我們創建了一個組“Log4Qt/Properties”,并且對 rootLogger 進行了一些簡單的配置:

#include "my_application.h" #include <log4qt/logger.h> #include <QSettings>  MyApplication::MyApplication(int &argc, char **argv)     : QCoreApplication(argc, argv) {     // 設置應用程序數據,以允許 Log4Qt 初始化讀取正確的值     setOrganizationName("MyOrganisation");     setApplicationName("MyApplication");     setOrganizationDomain("https://github.com/Waleon"); }  MyApplication::~MyApplication() { }  void MyApplication::setupLog4Qt() {     QSettings s;      QStringList groups = s.childGroups();     if (!groups.contains("Log4Qt")) {         // 將 Log4Qt 的日志級別設置為 INFO         s.beginGroup("Log4Qt");         s.setValue("Debug", "INFO");          // 配置日志輸出至文件 logger.log,使用級別 INFO         s.beginGroup("Properties");         s.setValue("log4j.rootLogger", "INFO, logFile");         s.setValue("log4j.appender.logFile", "org.apache.log4j.FileAppender");         s.setValue("log4j.appender.logFile.file", "logger.log");         s.setValue("log4j.appender.logFile.layout", "org.apache.log4j.TTCCLayout");         s.setValue("log4j.appender.logFile.layout.dateFormat", "ISO8601");     } }

這樣一來,通過調用 setupLog4Qt() 就能夠設置 Log4Qt 的配置信息了:

#include <QCoreApplication> #include <log4qt/logger.h> #include "my_application.h"  int main(int argc, char *argv[]) {     MyApplication app(argc, argv);      // 設置配置信息     app.setupLog4Qt();      // 現在,可以使用 logger 了。     Log4Qt::Logger* logger = Log4Qt::Logger::rootLogger();      logger->trace("This is a trace message.");     logger->debug("This is a debug message.");     logger->info("This is a info message.");     logger->warn("This is a warn message.");     logger->error("This is a error message.");     logger->fatal("This is a fatal message.");      return 0; }

為了更好地說明效果,我們分以下幾步進行:

在運行程序之前,打開注冊表,這時并不會有 Log4Qt 相關的配置。

第一次運行程序之后,重新打開注冊表(或者按 F5 刷新),你會發現 Log4Qt 所需的配置已經生成了,并且會輸出日志。

刪除或者注釋掉 setupLog4Qt() 部分(注冊表中的配置已經有了,不需要再次設置了),再次運行程序,依然會輸出日志。

根據配置,在運行程序時,會生成一個名為 logger.log 的日志文件:

QSettings中怎么對Log4Qt進行配置

可以看到,它里面包含了所有的日志記錄。

看完上述內容,你們掌握QSettings中怎么對Log4Qt進行配置 的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会泽县| 大同市| 乾安县| 嘉黎县| 临潭县| 彭山县| 万源市| 枣阳市| 怀宁县| 定兴县| 名山县| 吉安市| 印江| 新化县| 星子县| 虹口区| 华宁县| 怀安县| 阜宁县| 五河县| 钦州市| 安宁市| 民乐县| 民勤县| 托克逊县| 南京市| 宜良县| 华亭县| 陕西省| 六枝特区| 洱源县| 平舆县| 镶黄旗| 滁州市| 广西| 新龙县| 石台县| 宝坻区| 松滋市| 本溪| 那坡县|