用下面的代碼可以很方便的將log輸出到文件
/*********
* XXXX.h
*********/
//#define XXXX_DEBUG
#ifdef XXXX_DEBUG
extern FILE *qmuxd_fptr;
extern pthread_mutex_t qmux_file_log_mutex;
#define XXXX_MSG_0(str) \
pthread_mutex_lock(&qmux_file_log_mutex); \
if (qmuxd_fptr) \
{ \
fprintf (qmuxd_fptr,"%s| " str "\n",__FILE__); \
fflush(qmuxd_fptr); \
} \
pthread_mutex_unlock(&qmux_file_log_mutex)
#define XXXX_MSG_1(str, arg1) \
pthread_mutex_lock(&qmux_file_log_mutex); \
if (qmuxd_fptr) \
{ \
fprintf (qmuxd_fptr,"%s| " str "\n",__FILE__,arg1); \
fflush(qmuxd_fptr); \
} \
pthread_mutex_unlock(&qmux_file_log_mutex)
#define XXXX_MSG_1(str, arg1, arg2) \
pthread_mutex_lock(&qmux_file_log_mutex); \
if (qmuxd_fptr) \
{ \
fprintf (qmuxd_fptr,"%s| " str "\n",__FILE__,arg1,arg2); \
fflush(qmuxd_fptr); \
} \
pthread_mutex_unlock(&qmux_file_log_mutex)
#endif //XXXX_DEBUG
/*********
* XXXX.c
*********/
#ifdef XXXX_DEBUG
FILE *qmuxd_fptr = NULL;
pthread_mutex_t qmux_file_log_mutex = PTHREAD_MUTEX_INITIALIZER;
#endif //XXXX_DEBUG
#ifdef XXXX_DEBUG
qmuxd_fptr = fopen("/xxxx_log.txt","w");
#endif //XXXX_DEBUG
#ifdef XXXX_DEBUG
XXXX_MSG_0("xxxx test\n");
XXXX_MSG_1("xxxx a=%d\n",a);
XXXX_MSG_2("xxxx a=%d, b=%d\n",a,b);
#endif //XXXX_DEBUG