#define BUF_MAX_SIZE (1024)
enum {
SILENCE
FATAL
ERROR
NOTICE
INFO
DEBUG
TRACE
}
void pr_logs(int level, const char *fmt, ...);
int g_level = INFO;
#define mlog_trace(fmt, ...) pr_logs(TRACE, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_debug(fmt, ...) pr_logs(DEBUG, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_info(fmt, ...) pr_logs(INFO, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_notice(fmt, ...) pr_logs(NOTICE, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_error(fmt, ...) pr_logs(ERROR, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
#define mlog_fatal(fmt, ...) pr_logs(FATAL, "[%s][%d]"fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__)
void pr_logs(int level, const char *fmt, ...)
{
if (g_level < level){
return;
}
va_list arg_list;
char buf[BUF_MAX_SIZE];
memset(buf,0,sizeof(buf));
va_start(arg_list, fmt);
vsnprintf(buf, sizeof(buf), fmt, arg_list);
fprintf(stdout,"%s\n",buf);
va_end(arg_list);
}