Log日志,log日志文件
//log.c
#包含标准视频
#包含log.h
char * EM _ LOGLevelGet(const int level){
if(level==LOG_DEBUG)
返回"调试";
else if(级别==日志信息)
{
返回"信息";
}
否则if (level==LOG_WARN)
{
返回”警告”;
}
否则if (level==LOG_ERROR)
{
返回"错误";
}
}
void EM_LOG(常量int level,常量char* fun,常量int line,常量char* fmt.)
{
#ifdef OPEN_LOG
va _ list参数
va_start(arg,fmt);//初始化银变量,参数存储了省略号之前的变量
char buf[1 vsnprintf(NULL,0,fmt,arg)];
vsnprintf(buf,sizeof(buf),fmt,arg);//构造布法罗
va _ end(arg);
if(level=LOG_LEVEL)
printf([% s]\ t[func]% s \ t[line]% d \ t % s \ n ,EM_LOGLevelGet(level),fun,line,buf);
#endif
}//log.h
#杂注一次
#包含标准数据
#定义打开日志一
#定义日志级别日志调试
#定义日志(级别,fmt,)EM_LOG(level,__FUNCTION__,__LINE__,fmt)
void EM_LOG(常量int level,常量char* fun,常量int line,常量char* fmt.);
char * EM _ LOGLevelGet(const int level);
数据类型说明枚举{
LOG_DEBUG=0,
日志信息,
LOG_WARN,
LOG_ERROR,
}日志级别使用方式:
测试代码://HelloWorld.c
#包含log.h
无效总管(无效)
{
int a=10,b=11
LOG(LOG_DEBUG, App start );
LOG(LOG_INFO, a=%d ,a);
LOG(LOG_DEBUG, a=%d,b=%d ,a,b);
}编译运行gcc HelloWorld.c log.c -o app
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。