c 将log输出到文件

来源:互联网 发布:华为端口聚合命令 编辑:程序博客网 时间:2024/05/14 03:17

用下面的代码可以很方便的将log输出到文件


/*********  * XXXX.h *********///#define XXXX_DEBUG#ifdef XXXX_DEBUGextern 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_DEBUGFILE *qmuxd_fptr = NULL;pthread_mutex_t qmux_file_log_mutex = PTHREAD_MUTEX_INITIALIZER;#endif //XXXX_DEBUG#ifdef XXXX_DEBUGqmuxd_fptr = fopen("/xxxx_log.txt","w");#endif //XXXX_DEBUG#ifdef XXXX_DEBUGXXXX_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