56 struct doca_log_backend;
268 struct doca_log_backend **backend);
351 struct doca_log_backend **backend);
432 doca_error_t doca_log(uint32_t level,
int source,
const char *fname,
int line,
const char *func,
const char *format, ...)
446 #define DOCA_LOG(level, format, ...) doca_log(level, log_source, __FILE__, __LINE__, __func__, format, ##__VA_ARGS__)
456 #define DOCA_LOG_CRIT(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_CRIT, format, ##__VA_ARGS__)
466 #define DOCA_LOG_ERR(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_ERROR, format, ##__VA_ARGS__)
476 #define DOCA_LOG_WARN(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_WARNING, format, ##__VA_ARGS__)
486 #define DOCA_LOG_INFO(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_INFO, format, ##__VA_ARGS__)
496 #define DOCA_LOG_DBG(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_DEBUG, format, ##__VA_ARGS__)
510 #ifdef DOCA_LOGGING_ALLOW_TRACE
511 #define DOCA_LOG_TRC(format, ...) DOCA_LOG(DOCA_LOG_LEVEL_TRACE, format, ##__VA_ARGS__)
513 #define DOCA_LOG_TRC(format, ...) \
538 #if defined(__INTELLISENSE__)
539 #pragma diag_suppress 1094
542 #define DOCA_LOG_REGISTER(source) \
543 static int log_source; \
545 static void __attribute__((constructor(101), used)) DOCA_LOG_CTOR_##__FILE__(void) \
547 doca_log_register_source(#source, &log_source); \
554 class doca_log_registrator {
556 doca_log_registrator(
const char *source_name,
int &log_source) noexcept
559 m_log_source = log_source;
566 #define DOCA_LOG_REGISTER(source) \
567 static int log_source{0}; \
568 static doca_log_registrator g_register_struct(#source, log_source)
579 #pragma section(".CRT$XCU", read)
580 #define DOCA_LOG_REGISTER(source) \
581 static int log_source = 0; \
582 static void _log_ctor_func(void); \
583 __pragma(data_seg(".CRT$XCU")) static void (*__doca_log_initializer)() = _log_ctor_func; \
584 __pragma(data_seg()) static void _log_ctor_func(void) \
586 doca_log_register_source(#source, &log_source); \
#define __attribute__(_x_)
To allow compiling functions and structs that are using GCC attributes using attribute() in compilers...
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
enum doca_error doca_error_t
DOCA API return codes.
DOCA_EXPERIMENTAL uint32_t doca_log_level_get_global_sdk_limit(void)
Get the global log level for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_level_upper_limit_strict(struct doca_log_backend *backend)
Mark the upper log level limit of a specific application logging backend for application messages as ...
DOCA_EXPERIMENTAL doca_error_t doca_log_level_set_global_lower_limit(uint32_t level)
Set the log level of ALL logging backends for application messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_standard(void)
Create default, non configurable backend for application messages.
doca_log_level
log levels, sorted by verbosity level from high to low
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_level_lower_limit_strict(struct doca_log_backend *backend)
Mark the lower log level limit of a specific logging backend for application messages as strict.
DOCA_EXPERIMENTAL doca_error_t doca_log_register_source(const char *source_name, int *source)
Register a log source.
DOCA_EXPERIMENTAL uint32_t doca_log_level_get_global_upper_limit(void)
Get the global upper log level for application messages.
void(* log_flush_callback)(char *buf)
logging backend flush() handler
DOCA_EXPERIMENTAL uint32_t doca_log_level_get_global_lower_limit(void)
Get the global log level for application messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_fd(int fd, struct doca_log_backend **backend)
Create a logging backend for application messages with an fd stream.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_buf_sdk(char *buf, size_t capacity, log_flush_callback handler, struct doca_log_backend **backend)
Create a logging backend with a char buffer stream for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_syslog(const char *name, struct doca_log_backend **backend)
Create a logging backend for application messages with a syslog output.
DOCA_EXPERIMENTAL doca_error_t doca_log_level_set_global_sdk_limit(uint32_t level)
Set the log level of ALL logging backends for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_level_set_global_upper_limit(uint32_t upper_limit)
Set the log upper level limit of ALL logging backends for application messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_fd_sdk(int fd, struct doca_log_backend **backend)
Create a logging backend with an fd stream for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_file_sdk(FILE *fptr, struct doca_log_backend **backend)
Create a logging backend with a FILE* stream for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_file(FILE *fptr, struct doca_log_backend **backend)
Create a logging backend for application messages with a FILE* stream.
DOCA_EXPERIMENTAL doca_error_t doca_log_unregister_source(int source)
Unregister a log source.
DOCA_EXPERIMENTAL doca_error_t doca_log(uint32_t level, int source, const char *fname, int line, const char *func, const char *format,...) __attribute__((format(printf
Generates an application log message.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_syslog_sdk(const char *name, struct doca_log_backend **backend)
Create a logging backend with a syslog output for SDK messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_sdk_level(struct doca_log_backend *backend, uint32_t level)
Set the log level limit for SDK logging backends.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_create_with_buf(char *buf, size_t capacity, log_flush_callback handler, struct doca_log_backend **backend)
Create a logging backend for application messages with a char buffer stream.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_level_upper_limit(struct doca_log_backend *backend, uint32_t upper_limit)
Set the upper log level limit of a specific logging backend for application messages.
DOCA_EXPERIMENTAL doca_error_t doca_log_backend_set_level_lower_limit(struct doca_log_backend *backend, uint32_t level)
Set the lower log level of a specific logging backend for application messages.