Agora
1.2.0
Agora project
|
Go to the documentation of this file.
9 #define AGORA_LOG_LEVEL_OFF (0)
10 #define AGORA_LOG_LEVEL_ERROR (1)
11 #define AGORA_LOG_LEVEL_WARN (2)
12 #define AGORA_LOG_LEVEL_INFO (3)
13 #define AGORA_LOG_LEVEL_FRAME (4)
14 #define AGORA_LOG_LEVEL_SYMBOL (5)
15 #define AGORA_LOG_LEVEL_TRACE (6)
17 #if !defined(AGORA_LOG_LEVEL)
18 #define AGORA_LOG_LEVEL (AGORA_LOG_LEVEL_ERROR)
21 #define AGORA_LOG_DEFAULT_STREAM (stdout)
22 #define AGORA_LOG_STREAM (AGORA_LOG_DEFAULT_STREAM)
24 #if !defined(USE_SPDLOG)
33 #define Agora_trace_file_or_default_stream (AGORA_LOG_DEFAULT_STREAM)
35 #define AGORA_LOG_INIT() ((void)0);
36 #define AGORA_LOG_SHUTDOWN() ((void)0);
38 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_ERROR
39 #define AGORA_LOG_ERROR(...) \
40 AgoraOutputLogHeader(AGORA_LOG_DEFAULT_STREAM, AGORA_LOG_LEVEL_ERROR); \
41 std::fprintf(AGORA_LOG_DEFAULT_STREAM, __VA_ARGS__); \
42 std::fflush(AGORA_LOG_DEFAULT_STREAM)
44 #define AGORA_LOG_ERROR(...) ((void)0)
47 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_WARN
48 #define AGORA_LOG_WARN(...) \
49 AgoraOutputLogHeader(AGORA_LOG_DEFAULT_STREAM, AGORA_LOG_LEVEL_WARN); \
50 std::fprintf(AGORA_LOG_DEFAULT_STREAM, __VA_ARGS__); \
51 std::fflush(AGORA_LOG_DEFAULT_STREAM)
53 #define AGORA_LOG_WARN(...) ((void)0)
56 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_INFO
57 #define AGORA_LOG_INFO(...) \
58 AgoraOutputLogHeader(AGORA_LOG_DEFAULT_STREAM, AGORA_LOG_LEVEL_INFO); \
59 std::fprintf(AGORA_LOG_DEFAULT_STREAM, __VA_ARGS__); \
60 std::fflush(AGORA_LOG_DEFAULT_STREAM)
62 #define AGORA_LOG_INFO(...) ((void)0)
65 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_FRAME
66 #define AGORA_LOG_FRAME(...) \
67 AgoraOutputLogHeader(Agora_trace_file_or_default_stream, \
68 AGORA_LOG_LEVEL_FRAME); \
69 std::fprintf(Agora_trace_file_or_default_stream, __VA_ARGS__); \
70 std::fflush(Agora_trace_file_or_default_stream)
72 #define AGORA_LOG_FRAME(...) ((void)0)
75 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_SYMBOL
76 #define AGORA_LOG_SYMBOL(...) \
77 AgoraOutputLogHeader(Agora_trace_file_or_default_stream, \
78 AGORA_LOG_LEVEL_SYMBOL); \
79 std::fprintf(Agora_trace_file_or_default_stream, __VA_ARGS__); \
80 std::fflush(Agora_trace_file_or_default_stream)
82 #define AGORA_LOG_SYMBOL(...) ((void)0)
85 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_TRACE
86 #define AGORA_LOG_TRACE(...) \
87 AgoraOutputLogHeader(Agora_trace_file_or_default_stream, \
88 AGORA_LOG_LEVEL_TRACE); \
89 std::fprintf(Agora_trace_file_or_default_stream, __VA_ARGS__); \
90 std::fflush(Agora_trace_file_or_default_stream)
92 #define AGORA_LOG_TRACE(...) ((void)0)
103 constexpr
size_t kLogThreadPoolQueueSize = 32768;
104 constexpr
size_t kLogThreadCount = 1;
106 #define AGORA_LOG_INIT() \
107 spdlog::init_thread_pool(kLogThreadPoolQueueSize, kLogThreadCount); \
108 spdlog::set_default_logger( \
109 spdlog::create_async_nb<spdlog::sinks::stdout_color_sink_mt>( \
111 auto f = std::make_unique<spdlog::pattern_formatter>( \
112 spdlog::pattern_time_type::utc, std::string("")); \
113 f->set_pattern("[%S:%f][%^%L%$] %v"); \
114 spdlog::set_formatter(std::move(f)); \
115 spdlog::set_level(SPDLOG_LEVEL);
117 #define AGORA_LOG_SHUTDOWN() spdlog::shutdown();
119 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_ERROR
120 #define AGORA_LOG_ERROR(...) spdlog::error(fmt::sprintf(__VA_ARGS__));
122 #define AGORA_LOG_ERROR(...) ((void)0)
125 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_WARN
126 #define AGORA_LOG_WARN(...) spdlog::warn(fmt::sprintf(__VA_ARGS__));
128 #define AGORA_LOG_WARN(...) ((void)0)
131 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_INFO
132 #define AGORA_LOG_INFO(...) spdlog::info(fmt::sprintf(__VA_ARGS__));
134 #define AGORA_LOG_INFO(...) ((void)0)
137 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_FRAME
138 #define AGORA_LOG_FRAME(...) spdlog::debug(fmt::sprintf(__VA_ARGS__));
140 #define AGORA_LOG_FRAME(...) ((void)0)
143 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_SYMBOL
144 #define AGORA_LOG_SYMBOL(...) spdlog::debug(fmt::sprintf(__VA_ARGS__));
146 #define AGORA_LOG_SYMBOL(...) ((void)0)
149 #if AGORA_LOG_LEVEL >= AGORA_LOG_LEVEL_TRACE
150 #define AGORA_LOG_TRACE(...) spdlog::trace(fmt::sprintf(__VA_ARGS__));
152 #define AGORA_LOG_TRACE(...) ((void)0)
160 clock_gettime(CLOCK_REALTIME, &t);
162 uint32_t seconds = t.tv_sec % 100;
163 uint32_t usec = t.tv_nsec / 1000;
166 return std::string(buf);
#define AGORA_LOG_LEVEL_FRAME
Definition: logger.h:13
static bool IsLogLevelReasonable()
Definition: logger.h:200
static void AgoraOutputLogHeader(FILE *stream, int level)
Definition: logger.h:169
#define AGORA_LOG_LEVEL_INFO
Definition: logger.h:12
#define AGORA_LOG_LEVEL_SYMBOL
Definition: logger.h:14
static std::string AgoraGetFormattedTime()
Return decent-precision time formatted as seconds:microseconds.
Definition: logger.h:158
auto fprintf(std::FILE *f, const S &fmt, const T &... args) -> int
Definition: printf.h:607
#define AGORA_LOG_LEVEL_WARN
Definition: logger.h:11
#define AGORA_LOG_LEVEL_TRACE
Definition: logger.h:15
#define AGORA_LOG_LEVEL
Definition: logger.h:18
auto sprintf(const S &fmt, const T &... args) -> std::basic_string< Char >
Definition: printf.h:579
type
Definition: core.h:1131
#define AGORA_LOG_LEVEL_ERROR
Definition: logger.h:10