专栏中心

EEPW首页 > 专栏 > 调试打印级别的简单实现

调试打印级别的简单实现

发布人:电子禅石 时间:2020-08-03 来源:工程师 发布文章
#include <stdio.h>

#include <stdlib.h>
#include <string.h>
#include <stdarg.h>

int g_nMizarLogLevel = 1;


void trace_info(const char* format,const int level,const char* file, int line, const char* func,  ...);

// #define LOGV(format, arg...)  trace_info(format, 4, __FILE__, __LINE__, __func__, ##arg);
// #define LOGD(format, arg...)  trace_info(format, 4, __FILE__, __LINE__, __func__, ##arg);
// #define LOGI(format, arg...)  trace_info(format, 3, __FILE__, __LINE__, __func__, ##arg);
// #define LOGW(format, arg...)  trace_info(format, 2, __FILE__, __LINE__, __func__, ##arg);
// #define LOGE(format, arg...)  trace_info(format, 1, __FILE__, __LINE__, __func__, ##arg);
// #define LOGF(format, arg...)  trace_info(format, 1, __FILE__, __LINE__, __func__, ##arg);
#define LOGD(format, ...) port_printf(format, ##__VA_ARGS__)

//#define LOG_TRACE(format, level, file, line, func, ...)  port_printf("\n%s - %s(%d) - %s: ",format, level, file, line, func, ##__VA_ARGS__)
#define LOG_TRACE(format, level, file, line, func, arg...)  trace_info(format, level, file, line, func)//好奇怪这样就可以了。

#define LOGW(format, ...)  LOG_TRACE(format, 2, __FILE__, __LINE__, __func__, __VA_ARGS__)
void port_printf(const char *format, ...){

    va_list args;
    va_start(args, format);
    vprintf(format, args);
    va_end(args);
}

void trace_info(const char* format,const int level,const char* file, int line, const char* func,  ...)
{
    
    if (g_nMizarLogLevel < level)
    {
        return;
    }
    fprintf(stdout, "%d :[%s:%d]%s: ",level, file, line, func);
    va_list vaList;
    va_start(vaList, format);
    vfprintf(stdout, format, vaList);
    va_end(vaList);
    fprintf(stdout, "%c", '\n');
}

int main(int argc, char *argv[])
{
    LOGD("hello \n");
    LOGW("log warning test \n");
    return 0;
}


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

【IEEE好文分享】AI智能体能为您做什么?

智能计算 2025-12-08

简单制胜—第四部分:高效主动均衡背后的算法

InstaSPIN-无刷直流电机与DRV- 8312和Stellaris LM3S818

视频 2011-12-27

NDS9410A N沟道场效应管

电机驱动器和电机信号链的简介

视频 2011-12-28

2026年PCIM Asia Shenzhen正式定档,连接全球电力电子产业与华南核心产业集群

DRV8412-C2-KIT,直流有刷和步进电机控制套件

视频 2011-12-27

InstaSPIN-无刷直流电机与DRV-8312和小型28035

视频 2011-12-27

金升阳超低纹波1mV系列开关电源重磅发布—LRN65-20Bxx系列

MSP430系列单片机选购指南(中文)

人工智能领域的投资已达数万亿,从当前技术中实现通用人工智能(AGI)的可能性“接近于零”

200-600W高功率密度电源——LOFxxx-20BxxR2

480/960W R2系列三相导轨电源—LITFxxx-26BxxR2

mxic公司的网卡芯片mx98905

ROHM首次推出用于精密目标检测的高速VCSEL光学传感器

NCP1271–Soft Skip Mode Standby PWM Controller with Adjustable Skip or External Latch

精度跃升,稳定为王:HO1高压电源为精密仪器赋能

永磁电机的磁场定向控制

视频 2011-12-27

配套ACDC机壳开关电源的宽压金属滤波器——FC-LxxM系列

更多 培训课堂
更多 焦点
更多 视频

技术专区