zoukankan      html  css  js  c++  java
  • 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__ */
  • 相关阅读:
    JS 利用数组拼接html字符串
    IE浏览器下读取客户端上传的文件大小
    PrintWriter out = response.getWriter() 输出中文乱码问题
    非常有用的Java程序片段
    sql之left join、right join、inner join的区别
    JAVA 数组常用技巧
    java 图片文件格式转换(多页tif转jpg 、jpg转tif)
    SQL Server 字段状态判断语句
    sql server 2008中id如何设为自增
    java基于xml配置的通用excel单表数据导入组件(五、Action处理类)
  • 原文地址:https://www.cnblogs.com/Lxk0825/p/10696063.html
Copyright © 2011-2022 走看看