2010-07-01 64 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