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 "stdarg.h"
10 #include <inttypes.h>
11 #include <stdint.h>
12 
13 namespace agora {
14 namespace commons {
15 
17  AGORA_LOG_NONE = 0x0000, // no trace
18  AGORA_LOG_INFO = 0x0001,
19  AGORA_LOG_WARN = 0x0002,
20  AGORA_LOG_ERROR = 0x0004,
21  AGORA_LOG_FATAL = 0x0008,
27  AGORA_LOG_MEM = 0x0100, // memory info
28  AGORA_LOG_TIMER = 0x0200, // timing info
29  AGORA_LOG_STREAM = 0x0400, // "continuous" stream of data
30  // used for debug purposes
31  AGORA_LOG_DEBUG = 0x0800, // debug
34  AGORA_LOG_ALL = 0xffff,
35  AGORA_LOG_NO_API = 0xefef,
36 
37  AGORA_LOG_INVALID = (int32_t)-1,
38 };
39 
40 #if defined(__APPLE__)
41 #if defined(__clang__) && \
42  (__clang_major__ * 100 + __clang_minor__ * 10 + __clang_patchlevel__ >= \
43  1316)
44 #define LOG_FORMAT_CHECK 1
45 #endif
46 #elif defined(__clang__) || defined(__GNUC__)
47 #define LOG_FORMAT_CHECK 1
48 #endif
49 
50 #if defined(LOG_FORMAT_CHECK)
51 __attribute__((format(printf, 2, 3)))
52 #endif
53 void log(log_filters level, const char* fmt, ...);
54 
55 void logv(log_filters level, const char *fmt, va_list ap);
56 
57 } // namespace commons
58 } // namespace agora
59 
60 // Log format is strict now, for instance: you must use PRId64 when print
61 // int64_t If you have any trouble with or advice to log format goto
62 // https://confluence.agoralab.co/pages/viewpage.action?pageId=1037828374
agora::commons::AGORA_LOG_INFO
@ AGORA_LOG_INFO
Definition: agora_log_i.h:18
agora::commons::AGORA_LOG_API_CALL
@ AGORA_LOG_API_CALL
Definition: agora_log_i.h:23
agora::commons::AGORA_LOG_NO_API
@ AGORA_LOG_NO_API
Definition: agora_log_i.h:35
agora::commons::AGORA_LOG_INVALID
@ AGORA_LOG_INVALID
Definition: agora_log_i.h:37
agora::commons::AGORA_LOG_ERROR
@ AGORA_LOG_ERROR
Definition: agora_log_i.h:20
agora
Definition: AgoraAtomicOps.h:21
agora::commons::AGORA_LOG_TIMER
@ AGORA_LOG_TIMER
Definition: agora_log_i.h:28
agora::commons::AGORA_LOG_MEM
@ AGORA_LOG_MEM
Definition: agora_log_i.h:27
agora::commons::AGORA_LOG_NONE
@ AGORA_LOG_NONE
Definition: agora_log_i.h:17
agora::commons::AGORA_LOG_DEBUG
@ AGORA_LOG_DEBUG
Definition: agora_log_i.h:31
agora::commons::fmt
const char * fmt
Definition: agora_log_i.h:53
agora::commons::AGORA_LOG_DEFAULT
@ AGORA_LOG_DEFAULT
Definition: agora_log_i.h:22
agora::commons::AGORA_LOG_WARN
@ AGORA_LOG_WARN
Definition: agora_log_i.h:19
agora::commons::AGORA_LOG_STREAM
@ AGORA_LOG_STREAM
Definition: agora_log_i.h:29
agora::commons::AGORA_LOG_CONSOLE
@ AGORA_LOG_CONSOLE
Definition: agora_log_i.h:33
agora::commons::AGORA_LOG_MODULE_CALL
@ AGORA_LOG_MODULE_CALL
Definition: agora_log_i.h:24
agora::commons::AGORA_LOG_QUALITY
@ AGORA_LOG_QUALITY
Definition: agora_log_i.h:25
agora::commons::AGORA_LOG_USER_API_CALL
@ AGORA_LOG_USER_API_CALL
Definition: agora_log_i.h:32
agora::commons::AGORA_LOG_ALL
@ AGORA_LOG_ALL
Definition: agora_log_i.h:34
agora::commons::AGORA_LOG_FATAL
@ AGORA_LOG_FATAL
Definition: agora_log_i.h:21
agora::commons::logv
const char void logv(log_filters level, const char *fmt, va_list ap)
agora::commons::__attribute__
__attribute__((format(printf, 2, 3))) void log(log_filters level
agora::commons::log_filters
log_filters
Definition: agora_log_i.h:16
agora::commons::AGORA_LOG_DIAGNOSE
@ AGORA_LOG_DIAGNOSE
Definition: agora_log_i.h:26