2010-07-01 61 views
0

我想在C程序中寫日誌文件。我也希望它在每天的基礎上添加帶有tempstamp的新日誌文件。如何寫C日誌文件

你是一個想法,還是有一個文庫?

+1

你是什麼意思的「日誌文件」?它只是一個文件,對吧?你想追加newlogfile嗎?在fopen中使用append標誌...!或者你的意思是你需要添加兩個時間戳? (timestamp == tempstamp?)...澄清你的問題 – ShinTakezou 2010-07-01 08:37:03

回答

1

有C的日誌庫,例如log4c

+0

但我想只是頭文件沒有安裝和圖安裝:-( – farka 2010-07-01 08:38:37

+0

如果你想使用一個外部庫,你需要安裝它!只是頭文件將無法正常工作你也需要圖書館,如果你的意思是graphviz而不是圖表,你不需要安裝它,除非你想用doxygen構建文檔 – jigfox 2010-07-01 08:40:15

+0

想你但是沒有辦法用fopen fclose fwrite系統時間!! – farka 2010-07-01 09:40:26

-1

是否要將程序的輸出寫入日誌文件? 這是在您編寫大型應用程序時完成的,您需要分析日誌以瞭解軟件的確切行爲。 在這種情況下,您可能希望將輸出重定向到日誌文件並在稍後進行讀取和分析。 因爲您不想使用任何標準日誌記錄庫,您可能必須編寫一個守護程序來捕獲輸出並創建日誌文件。

我在引用時假設您要創建文件日誌實用程序。

0

試試這個log4cpp。 這裏是用C寫的簡單的日誌文件創建。

/*Write your won logfile in c.*/ 
#include <stdio.h> 
#define LOG(X, Y) fprintf (fp, #X ": Time:%s, File:%s(%d) " #Y "\n", __TIMESTAMP__, __FILE__, __LINE__) 

int main(int args, char **argv) 
{ 
    FILE *fp= fopen("logfile.txt", "w"); //("c:\\temp\\logfile.txt") 

    LOG(INFO, "File open success."); 
    LOG(WARN, "File path missing."); 
    LOG(ERROR, "File close faild."); 

    fclose(fp); 
return 0; 
} 
+1

使用'fprintf()'使得多線程進程不安全。 – 2017-12-08 11:35:11

+0

@AndrewHenle謝謝!+1爲你注意到完美!將學會使其安全。什麼東西? – Kulamani 2017-12-11 13:38:22