程式日誌封裝總結

2021-09-26 07:06:16 字數 1319 閱讀 1392

(owed by: 春夜喜雨

最近又寫了乙個c++的應用程式,開發使用的過程中,希望知道工具的執行細節,也希望能及時把出錯資訊記錄下來。期望一方面:及時反饋出錯誤,另一方面:供後續遇到問題時的分析使用。

借本次總結,把思路再理一遍,供後續參考。

寫的windows程式,日誌資訊可以有幾個輸出渠道,

乙個是檔案日誌,

乙個是windows下的outputdebugstring資訊列印,

乙個是向stdout輸出,如printf。

不同於outputdebugstring與printf,檔案日誌的特點是:

a. 持久儲存:寫出的資訊儲存在檔案中,可以供現在查閱,也可以供後續查閱。

b. 不產生干擾:不會列印到console程式的執行框中,不會對console輸出進行干擾。

(另外:對於日誌輸出渠道,還可以擴充套件到網路上去,可以架設網路伺服器,提供socket服務或http服務,提供網路上日誌記錄。)

參考之前參與寫過的程式的思路,對日誌進行規劃,把日誌分為幾個級別:

錯誤日誌log_error:錯誤提示資訊,例如:程式異常退出提示

警告日誌log_warn:警告提示資訊,例如:引數超出預期,但仍可正常處理時提示。

執行日誌log_run:執行時提示資訊,例如:提示使用者輸入的引數回顯

資訊日誌log_info:例如:過程中函式輸入輸出記錄等。

除錯日誌log_debug,臨時除錯日誌,放一些臨時用來除錯的資訊,過後可能就清除掉了。

對於:錯誤日誌、警告日誌、執行日誌,有兩個期望:

a. 使用者第一時間可以看到,所以需要向stdout輸出,需要向debuginfo窗體輸出

b. 記錄下來該資訊,以備以後查閱,所以要記錄到檔案中去

對於:資訊日誌日誌,期望是:

不對主窗體產生干擾,因為該日誌涉及的細節比較多,資訊也比較多,通常可能不太需要。

a. 只記錄到檔案中

b. 可以考慮通過引數控制是否輸出,以便於優化程式效能

對與:除錯日誌,期望是:放一些臨時的除錯資訊,除錯完成後就直接關閉掉。

a. 必須進行引數控制,引數開啟時才能輸出

b. 輸出時,同時向stdout和檔案輸出,便於發現引數開啟,不使用時關閉。

向前臺使用使用者輸出的資訊error/warn/run,格式要求:

a. 提示內容不含有調測資訊

b. 需要考慮使用人群,提供合適的描述資訊,便於後者使用

向後台輸出資訊,要求

a. 帶上除錯資訊,例如檔案行號,方便問題定位

b. 帶時間戳,方便跟蹤問題發生時間

c. 檔案可以考慮按天分拆

(owed by: 春夜喜雨

python日誌模組 封裝

import logging,time,os,sys 使用方法 在project主目錄下新建lib目錄,將logger fengzhuang.py檔案複製進去 呼叫方式 logger logger file or terminal file level debeg getlogger logger ...

C 除錯日誌封裝

c 自帶有個除錯日誌,但一般我們都用它在輸出視窗中列印資訊用,很少用來記錄文字日誌,一般的小型專案其實完全可以使用自帶的除錯類來記日誌,在system.diagnostics的系統命名空間下有個tracelistener類,我們繼承它,並重寫裡面的方法即可。1.tracelistener類概述 tr...

python 日誌統計封裝

收集存放日誌 2021 3 1 coding utf 8 import logging import time import os 生成log存放目錄 輸出當前檔案目錄,在目錄最終拼接 logs log path os.path.join os.path.dirname os.path.dirnam...