c 中log的設計

2021-09-24 02:21:53 字數 971 閱讀 1959

兵馬未動,糧草先行

在進行工程構建前,最先需要考慮的就是日誌系統,用於程式除錯。

目前,已經有很多開源庫可供使用[1]。其中比較出名的是glog[2],谷歌出品的。我偶爾也寫點程式,之前看到caffee中的日誌模組,我就把它拿了出來[3],以備使用。我最近在寫程式,恰好就把摘出來的日誌模組使用上了。但是我在調成程式的時候,就發現這類日誌系統不是很方便,把程式中的所有資訊均列印出來,找到有用的資訊是很費勁的。

因為我寫的主要是網路**程式,跑在ns3上的,我覺得ns的日誌模組就設計非不錯,可以單獨對每個源程式檔案進行除錯,只有被logcomponentenable的模組才被允許輸出日誌資訊。已經除錯成功的程式,似乎就不用輸出日誌,而除錯的程式,有不是所有的程式檔案均含有bug。因此,ns的日誌的設計模式,是值得學習和使用的。我把ns3的日誌模組單獨摘取了出來[4]。

原理也很簡單,就是在程式檔案中定義了區域性靜態變數glog。

例如程式檔案 hello.cc

#include "hello.h"

#include "ns3/log.h"

ns_log_component_define("hello");

void hello::test()

ns_log_component_define這一句就是為了定義glog。

在主程式中ns3::logcomponentenable(「hello」,ns3::log_all);在呼叫test函式時,才會有輸出。

完整**[4]。這種日誌實現方式,只供參考,不保證在多執行緒環境下無bug。

[1] c/c++log日誌庫比較

[2] glog簡單使用

[3] log from caffe

[4] ns3 log standalone

[5] ns3 日誌使用

[6] c++實現log日誌系統

[7] tonk 中的日誌模組

log的儲存(新增中)

一 系統log 1 在終端裡輸入 sudo tar cjf log.tar.xz var log 的指令並回車執行。2 根據要求輸入密碼,輸入密碼後等待指令執行成功。3 執行完畢後,開啟檔案管理器,在主資料夾會看到乙個 log.tar.xz 的檔案,將這個檔案複製出來即可。二 檢視pci裝置 sud...

JNI中的log日誌

注意 android.mk裡有一行include clear vars 必須把local ldlibs llog放在它後面才有用,否則相當於沒寫。local path call my dir include clear vars local module helloworld local src f...

統計log中的資料

日誌格式 log 使用的log4j記錄的日誌,分隔符使用的是乙個tab,注意日期的時間與小時那裡是乙個空格,第一列為時間 第二列為id,為某乙個唯一標識,第三列為ip,第四列後面的可以不用考慮 2009 04 05 12 00 02 0572 218.200.247.111 2009 04 05 1...