(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...