1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        使用?log4qt.properties 配置?Log4Qt

        共 4028字,需瀏覽 9分鐘

         ·

        2021-09-27 03:01

        ????關(guān)注后回復(fù) “進群” ,拉你進程序員交流群????


        作者丨Waleon

        來源丨高效程序員



        1

        配置文件


        在 Log4Qt 的初始化過程中,除了會使用環(huán)境變量、QSettings 之外,它還會通過默認的配置文件進行配置。對于這個默認配置文件,Log4Qt 要求:


        • 文件名:為 log4qt.properties;

        • 文件內(nèi)容:需要符合 Log4Qt 配置語法規(guī)則;

        • 文件所在位置:必須位于可執(zhí)行程序(*.exe)的同級目錄。


        注意:如果有其中一條不滿足,Log4Qt 就無法使用默認文件進行正常的初始化!


        默認配置文件看上去限制比較多,當然如果你愿意,也完全可以通過 PropertyConfigurator::configure() 或者 PropertyConfigurator::configureAndWatch() 自由指定配置文件的名稱和所在路徑。


        一個簡單的配置文件,如下所示:


        logPath=.
        log4j.rootLogger=All, logFile

        log4j.appender.logFile=org.apache.log4j.FileAppender
        log4j.appender.logFile.threshold=INFO
        log4j.appender.logFile.immediateFlush=true
        log4j.appender.logFile.appendFile=true
        log4j.appender.logFile.file=${logPath}/logger.log
        log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
        log4j.appender.logFile.layout.ConversionPattern=%r [%t] %p %c %x - %m%n


        注意:下面的 log4qt.propertieslog4qt.conf 都使用了這個配置。


        這個配置主要針對 rootLogger,通過它,我們可以將日志記錄追加至 logger.log 文件中。



        2

        使用默認配置文件


        為了驗證這個過程,編寫一個簡單的程序:


        // main.cpp
        #include <QCoreApplication>
        #include <log4qt/logger.h>

        int main(int argc, char *argv[])
        {
            QCoreApplication a(argc, argv);

            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;
        }


        假設(shè),沒有 log4qt.properties 這個配置文件。在運行程序時,便不會有任何的消息輸出,也不會生成相應(yīng)的日志文件。


        現(xiàn)在,將 log4qt.properties 拷貝至可執(zhí)行程序所在目錄下,再次運行程序:



        可以看到,日志文件 logger.log 生成了,并且日志記錄也被成功的追加進去了。



        3

        自由指定配置文件


        有了默認的配置文件(log4qt.properties),我們的便可以很靈活地對程序進行控制。但倘若要修改配置文件的名稱或者所在路徑,這時該怎么辦?


        可以通過下述方式快速地進行配置:


        #include <QCoreApplication>
        #include <QStandardPaths>
        #include <QFile>
        #include <log4qt/logger.h>
        #include <log4qt/propertyconfigurator.h>

        int main(int argc, char *argv[])
        {
            QCoreApplication a(argc, argv);

            QString configLoc = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);

            // 用指定的配置文件進行配置
            QString configFile = configLoc + "/log4qt.conf";
            if (QFile::exists(configFile))
                Log4Qt::PropertyConfigurator::configureAndWatch(configFile);

            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;
        }


        注意:配置文件所在路徑可以隨意指定(例如:E:/log4qt.conf)。這里,我們使用了 AppConfigLocation,在 Windows 中,該路徑由 C:/Users/<USER>/AppData/Local/<APPNAME> 表示。


        假設(shè),在 AppConfigLocation 中沒有 log4qt.conf 這個配置文件,在運行程序時,便不會有日志文件和任何的消息輸出。


        現(xiàn)在,將 log4qt.conf 拷貝至 AppConfigLocation 目錄下,再次運行程序:



        和上面一樣,這也生成了一個日志文件 logger.log,并且日志記錄也被成功的追加進去了。

        -End-

        最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

        點擊??卡片,關(guān)注后回復(fù)【面試題】即可獲取

        在看點這里好文分享給更多人↓↓

        瀏覽 56
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            俄罗斯freexxxx性 | 一级黄色免费片 | 亚洲AV无码乱码在观看性色扶 | 黄片资源| 欧美另类操逼视频 | 久色婷婷小香蕉 | 黄色操逼毛片 | 玖玖干| 久久伦理视频 | 国产精品无码久久久久成人app |