VC-Logger

VC-Logger 是由 JessMA 開源組織開發的一個簡單易用的 C++ 程式通用日誌組件。設計時著重考慮三個方面:功能、可用性和性能。為了讓大家能更方便的學習 VC-Logger,發行包中包含幾個測試用例:TestGUILogger(GUI 版本測試用例 / 靜態載入)、TestDynamicLogger(GUI 版本測試用例 / 動態載入)、TestConsoleLogger(Console 版本測試用例 / 靜態載入)。

基本介紹

  • 軟體名稱:VC-Logger
  • 開發商:JessMA
  • 軟體語言:英文
基本資料,功能:,可用性:,性能:,使用方法,方法一:,方法二:,方法三:,

基本資料

VC-Logger

功能:

本日誌組件的目的是滿足大多數應用程式記錄日誌的需求 —— 把日誌輸出到檔案或傳送到應用程式中,並不提供一些複雜但不常用的功能。本日誌組件的功能包括:
  1. 把日誌信息輸出到指定檔案
  2. 每日生成一個日誌檔案
  3. 對於 GUI 程式,可以把日誌信息傳送到指定視窗
  4. 對於 Console 應用程式,可以把日誌信息發往標準輸出 (std::cout)
  5. 支持 MBCS / UNICODE,Console / GUI 程式
  6. 支持動態載入和靜態載入日誌組件 DLL
  7. 支持 DEBUG/TRACE/INFO/WARN/ERROR/FATAL 等多個日誌級別

可用性:

本日誌組件著重考慮了可用性,儘量讓使用者用起來覺得簡便、舒心:
  1. 簡單純淨:不依賴任何程式庫或框架
  2. 使用接口簡單,不需複雜的配置或設定工作
  3. 提供 CStaticLogger 和 CDynamicLogger 包裝類用於靜態或動態載入以及操作日誌組件,用戶無 需關注載入細節
  4. 程式如果要記錄多個日誌檔案只需為每個日誌檔案創建相應的 CStaticLogger 或 CDynamicLogger 對象
  5. 只需調用 Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法記錄日誌
  6. 日誌記錄方法支持可變參數
  7. 日誌輸出格式:<時間> <執行緒ID> <日誌級別> <日誌內容>

性能:

性能是組件是否值得使用的硬指標,本組件從設計到編碼的過程都儘量考慮到性能最佳化:
  1. 支持多執行緒同時傳送寫日誌請求
  2. 使用單獨執行緒在後台寫日誌,不影響工作執行緒的正常執行
  3. 採用批處理方式批量記錄日誌

使用方法

方法一:

(靜態載入 Logger DLL)
--------------------------------------------------------------------------------------
  1. 應用程式包含 StaticLogger.h 頭檔案
  2. 創建 CStaticLogger 對象(通常為全局對象)
  3. 調用 CStaticLogger->Init(...) 初始化日誌組件
  4. 使用 CStaticLogger->Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法寫日誌
  5. 調用 CStaticLogger->UnInit(...) 清理日誌組件(CStaticLogger 對象析構時也會自動清理日誌組件)

方法二:

(動態載入 Logger DLL)
--------------------------------------------------------------------------------------
  1. 應用程式包含 DynamicLogger.h 頭檔案
  2. 創建 CDynamicLogger 對象(通常為全局對象)
  3. 調用 CDynamicLogger->Init(...) 初始化日誌組件
  4. 使用 CDynamicLogger->Log()/Debug()/Trace()/Info()/Warn()/Error()/Fatal() 等方法寫日誌
  5. 調用 CDynamicLogger->UnInit(...) 清理日誌組件(CDynamicLogger 對象析構時也會自動清理日誌組件)

方法三:

(直接用導出函式載入 Logger DLL)
--------------------------------------------------------------------------------------
  1. 應用程式包含 Logger.h 頭檔案
  2. 手工調用 ILoger_Create() 和 ILoger_Destroy() 導出函式創建和銷毀 ILogger 對象
(註:如果是動態載入,需手工調用 ::LoadLibrary() / ::FreeLibrary() 系列 API 函式載入和卸載 Logger)
[
***** 對於希望通過視窗接收日誌信息的 GUI 程式 *****
A. 日誌組件初始化成功後調用 SetGUIWindow(HWND) 設定收日誌的視窗
B. 視窗須回響處理 LOG_MESSAGE 訊息
C. 處理完 LOG_MESSAGE 訊息後,調用 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 / 靜態載入)
  2. TestDynamicLogger (GUI / 動態載入)
  3. TestConsoleLogger (Console / 靜態載入)

相關詞條

熱門詞條

聯絡我們