• 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__ */
  • 相关阅读:
    PHP 单态设计模式
    五中常见的PHP设计模式
    PHP如何定义类及其成员属性与操作
    thinkphp 中MVC思想
    1.4 算法
    1.3 迭代器
    1.2 容器-container
    1.1 STL 概述
    2.3顺序容器-deque
    2.2 顺序容器-list
  • 原文地址:https://www.cnblogs.com/Lxk0825/p/10696063.html
Copyright © 2020-2023  润新知