LOG分级输出(c)

本文介绍了一种通过枚举log级别并自定义宏来实现的log分级输出方法,允许开发者在调试和生产环境中灵活调整日志显示。通过设置不同级别的log,可以在测试阶段看到详细信息,而上线时仅保留错误级别,简化了日志管理。
摘要由CSDN通过智能技术生成

平时调试时一般会使用printf进行数据输出调试,
但是最终上线时又需要将某些log拿掉,很麻烦,测试下使用log分级输出,测试时log等级开低便于调试,上线时log等级开高只输出error信息,可以很方便的管理log信息;

#include <stdio.h>

enum loglevels {
    LOG_OFF = 0,
    LOG_ERROR,
    LOG_WARNING,
    LOG_INFO,
    LOG_DEBUG
};

 static int loglevel = LOG_WARNING;
 
 #define log_pr(level, fmt, ...) \
    do { \
        if (LOG_##level <= loglevel) { \
            printf("[" #level "] "fmt, ##__VA_ARGS__); \
        } \
    } while(0)
        

#define log1(fmt,...) printf(fmt, ##__VA_ARGS__)

int main(void) { 
	log_pr(ERROR,"this is error log!\n");
	log_pr(WARNING,"this is warning log!\n");
	log_pr(INFO,"this is info log!\n");
	log_pr(DEBUG,"this is debug log!\n");
	return 0;
}

输出:

> [ERROR] this is error log!
> [WARNING] this is warning log!

只输出了小于loglevel指定等级之下的了log信息;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值