Agora C++ API Reference for All Platforms

Loading...
Searching...
No Matches
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
16 enum log_filters {
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,
22 AGORA_LOG_DEFAULT = 0x000f,
23 AGORA_LOG_API_CALL = 0x0010,
24 AGORA_LOG_MODULE_CALL = 0x0020,
25 AGORA_LOG_QUALITY = 0x0040,
26 AGORA_LOG_DIAGNOSE = 0x0080,
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
32 AGORA_LOG_USER_API_CALL = 0x1000,
33 AGORA_LOG_CONSOLE = 0x8000,
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
Definition agora_log_i.h:14
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_DEBUG
@ AGORA_LOG_DEBUG
Definition agora_log_i.h:31
agora::commons::AGORA_LOG_ALL
@ AGORA_LOG_ALL
Definition agora_log_i.h:34
agora::commons::AGORA_LOG_DEFAULT
@ AGORA_LOG_DEFAULT
Definition agora_log_i.h:22
agora::commons::AGORA_LOG_MEM
@ AGORA_LOG_MEM
Definition agora_log_i.h:27
agora::commons::AGORA_LOG_DIAGNOSE
@ AGORA_LOG_DIAGNOSE
Definition agora_log_i.h:26
agora::commons::AGORA_LOG_TIMER
@ AGORA_LOG_TIMER
Definition agora_log_i.h:28
agora::commons::AGORA_LOG_NONE
@ AGORA_LOG_NONE
Definition agora_log_i.h:17
agora::commons::AGORA_LOG_CONSOLE
@ AGORA_LOG_CONSOLE
Definition agora_log_i.h:33
agora::commons::AGORA_LOG_FATAL
@ AGORA_LOG_FATAL
Definition agora_log_i.h:21
agora::commons::AGORA_LOG_ERROR
@ AGORA_LOG_ERROR
Definition agora_log_i.h:20
agora::commons::AGORA_LOG_QUALITY
@ AGORA_LOG_QUALITY
Definition agora_log_i.h:25
agora::commons::AGORA_LOG_WARN
@ AGORA_LOG_WARN
Definition agora_log_i.h:19
agora::commons::AGORA_LOG_INFO
@ AGORA_LOG_INFO
Definition agora_log_i.h:18
agora::commons::AGORA_LOG_USER_API_CALL
@ AGORA_LOG_USER_API_CALL
Definition agora_log_i.h:32
agora::commons::AGORA_LOG_MODULE_CALL
@ AGORA_LOG_MODULE_CALL
Definition agora_log_i.h:24
agora::commons::AGORA_LOG_INVALID
@ AGORA_LOG_INVALID
Definition agora_log_i.h:37
agora::commons::AGORA_LOG_API_CALL
@ AGORA_LOG_API_CALL
Definition agora_log_i.h:23
agora::commons::AGORA_LOG_STREAM
@ AGORA_LOG_STREAM
Definition agora_log_i.h:29
agora::commons::AGORA_LOG_NO_API
@ AGORA_LOG_NO_API
Definition agora_log_i.h:35
agora::commons::logv
const char void logv(log_filters level, const char *fmt, va_list ap)
agora::commons::fmt
const char * fmt
Definition agora_log_i.h:53
agora
Definition AgoraAtomicOps.h:21