Debug调试文件

  在debug.h中设置g_debug_switch即可控制调试级别。

/* debug.c */
#include "debug.h"
 
const char *get_log_levname(unsigned int loglevid)
{
    if (DBG_TYPE_TRACE == loglevid)
    {
        return DBG_TYPE_TRACE_NAME;
    }
    else if (DBG_TYPE_INFO == loglevid)
    {
        return DBG_TYPE_INFO_NAME;
    }
    else if (DBG_TYPE_ERR == loglevid)
    {
        return DBG_TYPE_ERR_NAME;
    }
    else
    {
        return DBG_TYPE_UNKNOWN_NAME;
    }
}
/*debug.h*/
#ifndef __DEBUG_H__
#define __DEBUG_H__
 
#ifdef __cplusplus
extern "C"
{
#endif
#include <syslog.h>
#include <stdarg.h>
 
typedef int bool_t; /* 布尔量数据类型 */
#ifndef TRUE
#define TRUE ((bool_t)1)
#endif
#ifndef FALSE
#define FALSE ((bool_t)0)
#endif
 
#define S_OK        (0)
#define S_ERR       (-1)
#define S_FAIL      (-2)
#define S_TIMEOUT   (-3)
 
#ifndef MIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#endif
 
#ifndef MAX
#define MAX(x, y) ((x) > (y) ? (x) : (y))
#endif
 
/* 定义各个级别日志的简称 */
#define DBG_TYPE_TRACE_NAME  "TRACE";   /* TRACE级别简称 */
#define DBG_TYPE_INFO_NAME  "INFO";   /* 提示级别的简称*/
#define DBG_TYPE_ERR_NAME   "ERR";   /* 一般级别的简称 */
#define DBG_TYPE_UNKNOWN_NAME   "UNKNOWN"; /*未知的日志级别简称*/
 
//extern int g_debug_switch;
/* 打印级别宏,代码中遍历使用,请保持成顺序排列 */
#define DBG_TYPE_TRACE      1   /* TRACE级别 */
#define DBG_TYPE_INFO       2   /* 提示级别的信息 */
#define DBG_TYPE_ERR        3   /* 错误级别的信息 */
#define DBG_TYPE_OFF        0
 
#define DEBUG_SCREEN 
#ifdef DEBUG_SCREEN    
#define DBG_PRINT(tp, fmt, args...) \
do { \
    if ( tp >= g_debug_switch ) \
        { fprintf(stderr,"[%s] %s(%d): " fmt, \
            get_log_levname(tp), __FUNCTION__, __LINE__, ##args); \
        } \
   } \
while (0)
#else
#define DBG_PRINT(tp, fmt, args...) \
do { \
    FILE *logfp = fopen("/var/log/systemlog.txt", "a+"); \
    if ( tp >= g_debug_switch ) \
        { fprintf(logfp,"[%s] %s(%d): " fmt, \
            get_log_levname(tp), __FUNCTION__, __LINE__, ##args); \
        } \
    fclose(logfp);   \
   } \
while (0)
#endif
 
#ifdef __cplusplus
}
#endif
 
#endif /* __DEBUG_H__ */

猜你喜欢

转载自www.cnblogs.com/Lxk0825/p/10696063.html
今日推荐