disable comment out
$ grep -rl "define DEBUG_ENV" | xargs sed -i 's/\/\/#define\ DEBUG_ENV/#define\ DEBUG_ENV/g'
comment out
$ grep -rl "define DEBUG_ENV" | xargs sed -i 's/#define\ DEBUG_ENV/\/\/#define\ DEBUG_ENV/g'
#define DEBUG_ENV
#ifdef DEBUG_ENV
#define fprintfs(fmt,args...) fprintf(stdout, fmt ,##args)
#define fprintfe(fmt,args...) fprintf(stderr, fmt ,##args)
#define DEBUGMSG __FILE__, __LINE__, __FUNCTION__
#else
#define fprintfs(fmt,args...)
#define fprintfe(fmt,args...)
#endif
#define CHECK_RET_VAL(code) \
if(code < 0)\
{fprintf(stderr, "%s %d %d\n",__FUNCTION__,__LINE__,code);return code;}
#define DEBUG_ENV
#ifdef DEBUG_ENV
#define printff(fmt,args...) printf(fmt ,##args)
#define DEBUGMSG __FILE__, __LINE__, __FUNCTION__
#else
#define printff(fmt,args...)
#endif
void log(char *level, char *msg)
{
FILE *fp= fopen("log.txt", "ab");
time_t t;
struct tm *t_tm;
char date[128];
time(&t);
t_tm=gmtime(&t);
strftime(date, sizeof(date), "%Y%m%d_%H:%M:%S", t_tm);
printf("%s\n",date);
if( NULL == fp )
{
fprintf(stderr, "can't open log file\n" );
return;
}
fprintf (fp, "%s: %s T:%s\n", level, msg, date);
fclose(fp);
return;
}
int main (void)
{
printff ("%s[%d] offset = %s\n", DEBUGMSG);
log("Error", "I don't like it");
return 0;
}
結果:
t1.c[19] offset = main
其中,
__FILE__ :檔案名稱
__LINE__ :行數
__TIME__ : 11:11:11
__TIMESTAMP__ : Fri Nov 11 11:11:11 2011
沒有留言:
張貼留言