13#ifndef __xwos_lib_xwlog_h__
14#define __xwos_lib_xwlog_h__
24int xwpf(
const char * fmt, ...);
26#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 0)
27# define XWLOGF_VERBOSE(tag, fmt, ...) xwpf("V|" tag " " fmt, ##__VA_ARGS__)
28# define XWLOGF_V(tag, fmt, ...) xwpf("V|" tag " " fmt, ##__VA_ARGS__)
30# define XWLOGF_VERBOSE(tag, fmt, ...)
31# define XWLOGF_V(tag, fmt, ...)
34#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 1)
35# define XWLOGF_DEBUG(tag, fmt, ...) xwpf("D|" tag " " fmt, ##__VA_ARGS__)
36# define XWLOGF_D(tag, fmt, ...) xwpf("D|" tag " " fmt, ##__VA_ARGS__)
38# define XWLOGF_DEBUG(tag, fmt, ...)
39# define XWLOGF_D(tag, fmt, ...)
42#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 2)
43# define XWLOGF_INFO(tag, fmt, ...) xwpf("I|" tag " " fmt, ##__VA_ARGS__)
44# define XWLOGF_I(tag, fmt, ...) xwpf("I|" tag " " fmt, ##__VA_ARGS__)
46# define XWLOGF_INFO(tag, fmt, ...)
47# define XWLOGF_I(tag, fmt, ...)
50#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 3)
51# define XWLOGF_NOTICE(tag, fmt, ...) xwpf("N|" tag " " fmt, ##__VA_ARGS__)
52# define XWLOGF_N(tag, fmt, ...) xwpf("N|" tag " " fmt, ##__VA_ARGS__)
54# define XWLOGF_NOTICE(tag, fmt, ...)
55# define XWLOGF_N(tag, fmt, ...)
58#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 4)
59# define XWLOGF_WARNING(tag, fmt, ...) xwpf("W|" tag " " fmt, ##__VA_ARGS__)
60# define XWLOGF_W(tag, fmt, ...) xwpf("W|" tag " " fmt, ##__VA_ARGS__)
62# define XWLOGF_WARNING(tag, fmt, ...)
63# define XWLOGF_W(tag, fmt, ...)
66#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 5)
67# define XWLOGF_ERR(tag, fmt, ...) xwpf("E|" tag " " fmt, ##__VA_ARGS__)
68# define XWLOGF_E(tag, fmt, ...) xwpf("E|" tag " " fmt, ##__VA_ARGS__)
70# define XWLOGF_ERR(tag, fmt, ...)
71# define XWLOGF_E(tag, fmt, ...)
74#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 6)
75# define XWLOGF_CRIT(tag, fmt, ...) xwpf("C|" tag " " fmt, ##__VA_ARGS__)
76# define XWLOGF_C(tag, fmt, ...) xwpf("C|" tag " " fmt, ##__VA_ARGS__)
78# define XWLOGF_CRIT(tag, fmt, ...)
79# define XWLOGF_C(tag, fmt, ...)
82#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 7)
83# define XWLOGF_ALERT(tag, fmt, ...) xwpf("A|" tag " " fmt, ##__VA_ARGS__)
84# define XWLOGF_A(tag, fmt, ...) xwpf("A|" tag " " fmt, ##__VA_ARGS__)
86# define XWLOGF_ALERT(tag, fmt, ...)
87# define XWLOGF_A(tag, fmt, ...)
90#if defined(XWLIBCFG_LOG) && (1 == XWLIBCFG_LOG) && (XWLIBCFG_XWLOG_LEVEL <= 8)
91# define XWLOGF_EMERG(tag, fmt, ...) xwpf("G|" tag " " fmt, ##__VA_ARGS__)
92# define XWLOGF_G(tag, fmt, ...) xwpf("G|" tag " " fmt, ##__VA_ARGS__)
94# define XWLOGF_EMERG(tag, fmt, ...)
95# define XWLOGF_G(tag, fmt, ...)
119#define xwlogf(lv, tag, fmt, ...) XWLOGF_##lv(tag, fmt, ##__VA_ARGS__)
int xwpf(const char *fmt,...)
格式化字符串并输出到日志,同 printf() 函数