本文介紹的是freecplus框架中日誌檔案操作的方法。
函式和類的宣告檔案是freecplus/_freecplus.h。
函式和類的定義檔案是freecplus/_freecplus.cpp。
示例程式位於freecplus/demo目錄中。
編譯規則檔案是freecplus/demo/makefile。
對於c/c++服務程式來說,程式執行在後台,沒有操作介面,無人值守,程式執行的狀態、資料處理的日誌、程式的異常等必須記錄在日誌檔案中,運維人員根據日誌檔案的內容,檢視程式執行和資料處理的情況。
clogfile類用於服務程式記錄程式的執行日誌。
// 日誌檔案操作類
class
clogfile
;
示例(demo42.cpp)
/*
* 程式名:demo42.cpp,此程式演示採用freecplus框架的clogfile類記錄程式的執行日誌。
* 本程式修改demo40.cpp把輸出的printf語句改為寫日誌檔案。
*/#include
"../_freecplus.h"
intmain()
logfile.
write
("demo42程式開始執行。\n");
cdir dir;
// 掃瞄/tmp/data目錄下檔名匹配"surfdata_*.xml"的檔案。
if(dir.
opendir
("/tmp/data"
,"surfdata_*.xml")==
false
) cfile file;
while
(dir.
readdir()
==true
)// 這裡可以插入讀取資料檔案的內容、解析xml字串並把資料寫入資料庫的**。
// 讀取文字資料用fgets和ffgets方法,讀取二進位制資料用fread方法。
// 具體的**我就不寫了。
// 處理完檔案中的資料後,關閉檔案指標,並刪除檔案。
file.
closeandremove()
; logfile.
writeex
("ok\n");
} logfile.
write
("demo42程式執行結束。\n");
}
先執行demo39程式,在/tmp/data目錄中生成幾個資料檔案,然後執行demo42,將生成日誌檔案/tmp/log/demo42.log,內容如下:
我們通過乙個示例程式的演示日誌檔案的切換功能,往日誌檔案中寫入一千萬資料,讓它產生切換。
示例(demo43.cpp)
/*
* 程式名:demo43.cpp,此程式演示freecplus框架的clogfile類的日誌檔案的切換。
*/#include
"../_freecplus.h"
intmain()
logfile.
write
("demo43程式開始執行。\n");
// 讓程式迴圈10000000,生成足夠大的日誌。
for(
int ii=
0;ii<
10000000
;ii++
) logfile.
write
("demo43程式執行結束。\n");
}
執行demo43,將在/tmp/log目錄中產生一批日誌檔案,用ls -l /tmp/log檢視如下:
freecplus框架 xml解析
本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...
freecplus框架 xml解析
本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...
freecplus框架 目錄操作
目錄本文介紹的是freecplus框架的目錄操作函式和類。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefile。...