#include<stdio.h>
#include<stdarg.h>
#define LOG_NONE (-1)
#define LOG_ERROR 0
#define LOG_WARNING 1
#define LOG_INFO 2
#define LOG_DEBUG 3
void sky_log( const char *name, int i_level, const char *fmt, ... )
{
char *s_level;
switch( i_level )
{
case LOG_ERROR:
s_level = "error";
break;
case LOG_WARNING:
s_level = "warning";
break;
case LOG_INFO:
s_level = "info";
break;
case LOG_DEBUG:
s_level = "debug";
break;
default:
s_level = "unknown";
break;
}
//将格式化的内容先输出到缓冲区中
fprintf(stderr, "%s [%s]: ", name, s_level);
var_list var;
va_start(var, fmt);
vfprintf(stderr,fmt, arg);
va_end(var);
}
int main()
{
const char * test = "test";
sky_log("sky", 0, "hello vfprintf %s", test);
return 1;
}
本文介绍了一个简单的C语言日志系统实现方法。该系统能够根据不同级别(错误、警告、信息和调试)输出日志,并使用vfprintf进行格式化输出。通过实例展示了如何调用日志函数。

被折叠的 条评论
为什么被折叠?



