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