c 將log輸出到文件

用下面的代碼可以很方便的將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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章