linux c下log输出代码模板示例代码
前言
本文主要介绍了关于linux c下log输出代码模板的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧
模板
模本分为两个文件:log.c和log.h.
log.c
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /** log.c **/ #include <unistd.h> #include "log.h" // log文件路径 #define filepath "./ps_com_log.log" //设定时间 static char * settime( char * time_s){ time_t timer= time (NULL); strftime (time_s, 20, "%Y-%m-%d %H:%M:%S" , localtime (&timer)); return time_s; } /* *打印 * */ static int PrintfLog( char * logText, char * string){ FILE * fd = NULL; char s[1024]; char tmp[256]; //使用追加方式打开文件 fd = fopen (filepath, "a+" ); if (fd == NULL){ return -1; } memset (s, 0, sizeof (s)); memset (tmp, 0, sizeof (tmp)); sprintf (tmp, "*****[pid=%d]:[" , getpid()); strcpy (s, tmp); memset (tmp, 0, sizeof (tmp)); settime(tmp); strcat (s, tmp); strcat (s, "]*****" ); fprintf (fd, "%s" , s); fprintf (fd, "*[%s]*****:\n" ,logText); fprintf (fd, "%s\n" ,string); fclose (fd); } /* *日志写入 * */ void LogWrite( char *logText, char *string) { //[为支持多线程需要加锁] pthread_mutex_lock(&mutex_log); //lock. //打印日志信息 PrintfLog(logText, string); //[为支持多线程需要加锁] pthread_mutex_unlock(&mutex_log); //unlock. } |
log.h
?1 2 3 4 5 6 7 8 9 10 | #ifndef __LOG_H__ #define __LOG_H__ #include <stdio.h> #include <string.h> #include <time.h> void LogWrite( char * logText, char *string); #endif /* __LOG_H__ */ |
测试文件
既然有了log输出功能,下面就简单测试一下:
?1 2 3 4 5 6 7 8 9 10 11 | #include "stdio.h" #include "log.h" int main( int argv, char **argc){ printf ( "test\n" ); LogWrite( "INFO" , "Hello World!" ); LogWrite( "error" , "H.e.l.l.o W.o.r.l.d!" ); LogWrite( "mint" , "H e l l o W o r l d!" ); LogWrite( "iout" , "Hallo World!" ); return 0; } |
以上代码很简单,不在过多解释。
运行结果:
*****[pid=15971]:[2018-12-05 14:24:21]******[INFO]*****:
Hello World!
*****[pid=15971]:[2018-12-05 14:24:21]******[error]*****:
H.e.l.l.o W.o.r.l.d!
*****[pid=15971]:[2018-12-05 14:24:21]******[mint]*****:
H e l l o W o r l d!
*****[pid=15971]:[2018-12-05 14:24:21]******[iout]*****:
Hallo World!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:https://www.jianshu.com/p/ba64481602ca
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。