c 如何建立程式日誌系統

2021-05-26 16:04:11 字數 1713 閱讀 8965

乙個好的軟體日誌系統的重要性:

a.在軟體開發過程中,為了方便除錯,我們經常要輸出某些日誌,

b.在單執行緒的時候,還可以直接看output視窗,但是多執行緒就要經常寫入日誌了。

c.如果沒有日誌系統,在程式發布之後,出現問題了,就很難定位錯誤所在。

所以,在乙個好的軟體,乙個好的程式,都會有自己的日誌系統。日誌可以是寫入txt檔案,可以是寫入event log,可以寫入資料庫,可以在命令列視窗輸出......形式格言。那麼如何建立乙個日誌系統呢?

借助c#的trace類,我們可以很容易的完成此功能,假如不用c#,而用c++或者其他沒有完好日誌系統的語言,可以採用開源庫,或者自己按照c#trace的設計思想,完成乙個簡單的日誌系統。

好了,先來看c#的trace類如何使用吧。看**

view plain

copy to clipboard

print?

stream slogfile = file.create("log.txt"); trace.autoflush =true; ; trace.listeners.add(newtextwritertracelistener(slogfile)); trace.listeners.add(neweventlogtracelistener("myeventlogsource")); trace.listeners.add(newxmlwritertracelistener(file.create("log.xml"))); trace.writeline("haha"); trace.writeline("logtext"); trace.flush();  

stream slogfile = file.create("log.txt"); trace.autoflush = true; ; trace.listeners.add(new textwritertracelistener(slogfile)); trace.listeners.add(new eventlogtracelistener("myeventlogsource")); trace.listeners.add(new xmlwritertracelistener(file.create("log.xml"))); trace.writeline("haha"); trace.writeline("logtext"); trace.flush();
上面的示例**只是加入了txt檔案,xml檔案,evenglog的listerners,然後以後呼叫都是直接用trace.write()之類的方法就可以了。

假如我們需要將日誌寫入資料庫,那麼我們需要從tracelisterner類派生出乙個新的類,過載其中的write(),writeline()方法.

通過使用c#的trace類,我們可以自己用c++建立乙個簡單的log類,其簡單類圖如下:

該圖只是列出了最主要的類,介面,函式。

我們可以想象log類addlisterner是維護了乙個listerner的列表,然後在write方法裡遍歷listerner,呼叫其write方法。

這樣,我們可以很方便的在各種日誌輸入方法之間轉換。假如開發後期,或者維護階段,需要實現其他的日誌輸出方法,不用到處找分布在**中的日誌的write方法,只需要修改listerner就ok了。

如何為應用程式建立單獨的系統日誌

系統日誌是監測應用程式執行狀況的必要手段。除了將日誌記錄在系統預設的應用程式日誌中以外,很多時候我們希望能為自己的程式建立單獨的系統日誌。以下就是為應用程式建立單獨的系統日誌的方法。1 建立日誌檔案 預設的日誌檔案存放位置為 systemroot system32 config 擴充套件名為evt。...

1 5 如何建立C 程式

首先,我們要進入microsoft visual c 整合開發環境 integrated develop environment,簡稱 ide 雙擊圖示即可。進入以後,我們可以看到如下介面。圖 1 1 vc 6.0 啟動介面 單擊左上角的file選單,選擇new,會跳出如下對話方塊。圖 1 2 建立...

linux 系統如何檢視系統日誌

mv html 路徑 從 本地 複製到 遠端 scp home daisy full.tar.gz root 172.19.2.75 home root 然後會提示你輸入另外那台172.19.2.75主機的root使用者的登入密碼,接著就開始copy了 複製目錄加引數 r 即可 從 遠端 複製到 本...