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>

        VC-Logger高性能 C++ 通用日志組件

        聯(lián)合創(chuàng)作 · 2023-09-30 00:43

        VC-Logger 是一個(gè)簡單易用的 C++ 程序通用日志組件。設(shè)計(jì)時(shí)著重考慮三個(gè)方面:功能、可用性和性能。為了讓大家能更方便的學(xué)習(xí) VC-Logger,特此精心制作了幾個(gè)測試用例:TestGUILogger(GUI 版本測試用例 / 靜態(tài)加載)、TestDynamicLogger(GUI 版本測試用例 / 動(dòng)態(tài)加載)、TestConsoleLogger(Console 版本測試用例 / 靜態(tài)加載)。

        功能: 本日志組件的目的是滿足大多數(shù)應(yīng)用程序記錄日志的需求 —— 把日志輸出到文件或發(fā)送到應(yīng)用程序中,并不提供一些復(fù)雜但不常用的功能。本日志組件的功能包括:

        1. 把日志信息輸出到指定文件

        2. 每日生成一個(gè)日志文件

        3. 對于 GUI 程序,可以把日志信息發(fā)送到指定窗口

        4. 對于Console應(yīng)用程序,可以把日志信息發(fā)往標(biāo)準(zhǔn)輸出 (std::cout)

        5. 支持 MBCS / UNICODE,Console / GUI 程序

        6. 支持動(dòng)態(tài)加載和靜態(tài)加載日志組件 DLL

        7. 支持 DEBUG/TRACE/INFO/WARN/ERROR/FATAL 等多個(gè)日志級別

        可用性: 本日志組件著重考慮了可用性,盡量讓使用者用起來覺得簡便、舒心:

        1. 簡單純凈:不依賴任何程序庫或框架

        2. 使用接口簡單,不需復(fù)雜的配置或設(shè)置工作

        3. 提供 CStaticLogger 和 CDynamicLogger 包裝類用于靜態(tài)或動(dòng)態(tài)加載以及操作日志組件,用戶無 需關(guān)注加載細(xì)節(jié)

        4. 程序如果要記錄多個(gè)日志文件只需為每個(gè)日志文件創(chuàng)建相應(yīng)的 CStaticLogger 或 CDynamicLogger 對象

        5. 只需調(diào)用 Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法記錄日志

        6. 日志記錄方法支持可變參數(shù)

        7. 日志輸出格式:<時(shí)間> <線程ID> <日志級別> <日志內(nèi)容>

        性能: 性能是組件是否值得使用的硬指標(biāo),本組件從設(shè)計(jì)到編碼的過程都盡量考慮到性能優(yōu)化:

        1. 支持多線程同時(shí)發(fā)送寫日志請求

        2. 使用單獨(dú)線程在后臺(tái)寫日志,不影響工作線程的正常執(zhí)行

        3. 采用批處理方式批量記錄日志

        *** 使用方法 ***
        方法一:(靜態(tài)加載 Logger DLL)
        --------------------------------------------------------------------------------------

        1. 應(yīng)用程序包含 StaticLogger.h 頭文件

        2. 創(chuàng)建 CStaticLogger 對象(通常為全局對象)

        3. 調(diào)用 CStaticLogger->Init(...) 初始化日志組件

        4. 使用 CStaticLogger->Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法寫日志

        5. 調(diào)用 CStaticLogger->UnInit(...) 清理日志組件(CStaticLogger 對象析構(gòu)時(shí)也會(huì)自動(dòng)清理日志組件)

        方法二:(動(dòng)態(tài)加載 Logger DLL)
        --------------------------------------------------------------------------------------

        1. 應(yīng)用程序包含 DynamicLogger.h 頭文件

        2. 創(chuàng)建 CDynamicLogger 對象(通常為全局對象)

        3. 調(diào)用 CDynamicLogger->Init(...) 初始化日志組件

        4. 使用 CDynamicLogger->Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法寫日志

        5. 調(diào)用 CDynamicLogger->UnInit(...) 清理日志組件(CDynamicLogger 對象析構(gòu)時(shí)也會(huì)自動(dòng)清理日志組件)

        方法三:(直接用導(dǎo)出函數(shù)加載 Logger DLL)
        --------------------------------------------------------------------------------------

        1. 應(yīng)用程序包含 Logger.h 頭文件

        2. 手工調(diào)用 ILoger_Create() 和 ILoger_Destroy() 導(dǎo)出函數(shù)創(chuàng)建和銷毀 ILogger 對象 

            (注:如果是動(dòng)態(tài)加載,需手工調(diào)用 ::LoadLibrary()/::FreeLibrary() 系列 API 函數(shù)加載和卸載 Logger DLL)

            [
                    ***** 對于希望通過窗口接收日志信息的 GUI 程序 *****
                A. 日志組件初始化成功后調(diào)用 SetGUIWindow(HWND) 設(shè)置收日志的窗口
                B. 窗口須響應(yīng)處理 LOG_MESSAGE 消息
                C. 處理完 LOG_MESSAGE 消息后,調(diào)用 ILogger::FreeLogMsg() 銷毀接收到的 TLogMsg 
            ]

        Environment:

        1. Windows 2000 or later (_WIN32_WINNT >= 0x0500)

        2. VC++ 2010 or later

        Release:

        1. Logger_C.dll - Console/MBCS/Release

        2. Logger_CD.dll - Console/MBCS/Debug

        3. Logger_CU.dll - Console/Unicode/Release

        4. Logger_CUD.dll - Console/Unicode/Debug

        5. Logger.dll - GUI/MBCS/Release

        6. Logger_D.dll - GUI/MBCS/Debug

        7. Logger_U.dll - GUI/Unicode/Release

        8. Logger_UD.dll - GUI/Unicode/Debug

        Examples:

        1. TestGUILogger         (GUI / 靜態(tài)加載)

        2. TestDynamicLogger  (GUI / 動(dòng)態(tài)加載)

        3. TestConsoleLogger   (Console / 靜態(tài)加載)

        瀏覽 27
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        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>
            日韩精品免费一区二区高清精品 | 操人视频在线观看 | 天天拍天天少妇av | 免费观看成年人视频 | 天天日天天干天天色 | 三级黄色小视频 | 国产色噜噜噜在线观看精品 | 爱操逼综合网 | 毛片基地网站 | 发情淫色精品网 |