使用宏定义来打印Log

1.定义log格式

#ifndef DEMO_C_LOG_H
#define DEMO_C_LOG_H

#include <stdio.h>

#define ALOGD(...) printf(__VA_ARGS__)

/**
    这个宏定义使用了 __func__ 作为第一个参数。
    __func__ 是一个标准的预定义宏,表示当前函数的名称(以字符串的形式)。
    该宏的作用是,日志中会输出当前函数的名称,格式如下:[当前函数名称] ...。
    fmt 和 __VA_ARGS__ 代表接下来的格式化字符串和可变参数部分。
 */
#define LOG_I(fmt,...) ALOGD("[%s] " fmt,__func__,__VA_ARGS__)

/**
    这个宏定义的第一个参数是 module,也就是你传递给宏的第一个参数。
    module 一般是一个模块名或标识符,表示日志来源的模块。
    第二个参数 fmt 是格式化字符串,__VA_ARGS__ 是可变参数,代表接下来的参数。
 */
#define LOG_D(module, fmt, ...) ALOGD("[%s] " fmt, module,__VA_ARGS__)

#endif //DEMO_C_LOG_H

#ifndef DEMO_C_LOG_H
#define DEMO_C_LOG_H

#include <stdio.h>

#define ALOGD(...) printf(__VA_ARGS__)

/**
    这个宏定义使用了 __func__ 作为第一个参数。
    __func__ 是一个标准的预定义宏,表示当前函数的名称(以字符串的形式)。
    该宏的作用是,日志中会输出当前函数的名称,格式如下:[当前函数名称] ...。
    fmt 和 __VA_ARGS__ 代表接下来的格式化字符串和可变参数部分。
 */
#define LOG_I(fmt,...) ALOGD("[%s] " fmt,__func__,__VA_ARGS__)

/**
    这个宏定义的第一个参数是 module,也就是你传递给宏的第一个参数。
    module 一般是一个模块名或标识符,表示日志来源的模块。
    第二个参数 fmt 是格式化字符串,__VA_ARGS__ 是可变参数,代表接下来的参数。
 */
#define LOG_D(module, fmt, ...) ALOGD("[%s] " fmt, module,__VA_ARGS__)

#endif //DEMO_C_LOG_H

2.对函数进行调用打印

#include "log.h"

void PrintHello(char* name)
{
    // printf("name is %s \n",name);
    ALOGD("name is %s \n",name);

    int val1 = 42;
    LOG_I("This is a log message with value %d\n", val1);

    int val = 33;
    const char *module = "MyModule";
    LOG_D(module,"This is a log message with value %d\n",val);
}

3.打印出来的结果

name is Wyd And Cls 
[PrintHello] This is a log message with value 42
[MyModule] This is a log message with value 33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值