大家做开发的时候,程序出现问题都用什么来记录日志信息啊?像syslog那种,分等级的记录,比较方便的开发、调试、发版等,从来都是自己写一个函数类似:
- #include <stdarg.h>
- #include <errno.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <sys/types.h>
-
- int mylog(char *fmt, ...)
- {
- FILE * fp;
- char fname[100];
- char acttime[100];
- time_t now_time;
- struct tm * tm;
- va_list argptr;
-
- time(&now_time);
- tm = localtime(&now_time);
- sprintf(fname,"../log/mylog.%4d%02d",(tm->tm_year+1900),(tm->tm_mon+1));
-
- if((fp = fopen(fname,"a")) == NULL)
- {
- exit(1);
- }
-
- memset(acttime,0,sizeof(acttime));
- sprintf(acttime,"%d-%d-%d %d:%d:%d:",tm->tm_year+1900,tm->tm_mon+1,
- tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
- acttime[99] = 0;
- if(fwrite(acttime, strlen(acttime), 1, fp) < 0)
- {
- exit(1);
- }
-
- va_start(argptr, fmt);
- if(vfprintf(fp, fmt, argptr) < 0)
- exit(1);
- va_end(argptr);
- fflush(fp);
- fclose(fp);
- return 0;
- }