Agora C++ API Reference for All Platforms
agora_log_i.h
1 //
2 // Agora Media SDK
3 //
4 // Created by ChenZhipeng in 2022-06.
5 // Copyright (c) 2022 Agora IO. All rights reserved.
6 //
7 #pragma once
8 
9 #include <cinttypes>
10 
11 namespace agora {
12 namespace commons {
13 
15  LOG_NONE = 0x0000, // no trace
16  LOG_INFO = 0x0001,
17  LOG_WARN = 0x0002,
18  LOG_ERROR = 0x0004,
19  LOG_FATAL = 0x0008,
20  LOG_DEFAULT = 0x000f,
21  LOG_API_CALL = 0x0010,
22  LOG_MODULE_CALL = 0x0020,
23  LOG_QUALITY = 0x0040,
24  LOG_DIAGNOSE = 0x0080,
25  LOG_MEM = 0x0100, // memory info
26  LOG_TIMER = 0x0200, // timing info
27  LOG_STREAM = 0x0400, // "continuous" stream of data
28  // used for debug purposes
29  LOG_DEBUG = 0x0800, // debug
31  LOG_CONSOLE = 0x8000,
32  LOG_ALL = 0xffff,
33  LOG_NO_API = 0xffef,
34 
35  LOG_INVALID = (int32_t)-1,
36 };
37 
38 #if defined(__APPLE__)
39 #if defined(__clang__) && (__clang_major__ * 100 + __clang_minor__ * 10 + __clang_patchlevel__ >= 1316)
40 #define LOG_FORMAT_CHECK 1
41 #endif
42 #elif defined(__clang__) || defined(__GNUC__)
43 #define LOG_FORMAT_CHECK 1
44 #endif
45 
46 #if defined(LOG_FORMAT_CHECK)
47 __attribute__((format(printf, 2, 3)))
48 #endif
49 void log(log_filters level, const char* fmt, ...);
50 
51 } // namespace commons
52 } // namespace agora
53 
54 // Log format is strict now, for instance: you must use PRId64 when print int64_t
55 // If you have any trouble with or advice to log format
56 // goto https://confluence.agoralab.co/pages/viewpage.action?pageId=1037828374
agora::commons::LOG_API_CALL
@ LOG_API_CALL
Definition: agora_log_i.h:21
agora::commons::LOG_MODULE_CALL
@ LOG_MODULE_CALL
Definition: agora_log_i.h:22
agora::commons::LOG_CONSOLE
@ LOG_CONSOLE
Definition: agora_log_i.h:31
agora::commons::LOG_DIAGNOSE
@ LOG_DIAGNOSE
Definition: agora_log_i.h:24
agora::commons::LOG_MEM
@ LOG_MEM
Definition: agora_log_i.h:25
agora
Definition: AgoraAtomicOps.h:21
agora::commons::LOG_INVALID
@ LOG_INVALID
Definition: agora_log_i.h:35
agora::commons::LOG_STREAM
@ LOG_STREAM
Definition: agora_log_i.h:27
agora::commons::LOG_QUALITY
@ LOG_QUALITY
Definition: agora_log_i.h:23
agora::commons::LOG_NONE
@ LOG_NONE
Definition: agora_log_i.h:15
agora::commons::fmt
const char * fmt
Definition: agora_log_i.h:49
agora::commons::LOG_USER_API_CALL
@ LOG_USER_API_CALL
Definition: agora_log_i.h:30
agora::commons::LOG_WARN
@ LOG_WARN
Definition: agora_log_i.h:17
agora::commons::LOG_DEBUG
@ LOG_DEBUG
Definition: agora_log_i.h:29
agora::commons::LOG_DEFAULT
@ LOG_DEFAULT
Definition: agora_log_i.h:20
agora::commons::LOG_ERROR
@ LOG_ERROR
Definition: agora_log_i.h:18
agora::commons::LOG_ALL
@ LOG_ALL
Definition: agora_log_i.h:32
agora::commons::LOG_TIMER
@ LOG_TIMER
Definition: agora_log_i.h:26
agora::commons::LOG_INFO
@ LOG_INFO
Definition: agora_log_i.h:16
agora::commons::__attribute__
__attribute__((format(printf, 2, 3))) void log(log_filters level
agora::commons::log_filters
log_filters
Definition: agora_log_i.h:14
agora::commons::LOG_FATAL
@ LOG_FATAL
Definition: agora_log_i.h:19
agora::commons::LOG_NO_API
@ LOG_NO_API
Definition: agora_log_i.h:33