25 #ifndef SPA_LOG_IMPL_H
26 #define SPA_LOG_IMPL_H
50 static const char *
const levels[] = {
"-",
"E",
"W",
"I",
"D",
"T" };
52 const char *basename = strrchr(file,
'/');
53 char text[512], location[1024];
60 vsnprintf(text,
sizeof(text), fmt, args);
61 snprintf(location,
sizeof(location),
"[%s][%s:%i %s()] %s\n",
62 levels[level], basename, line, func, text);
63 fputs(location, stderr);
78 #define SPA_LOG_IMPL_DEFINE(name) \
81 struct spa_log_methods methods; \
84 #define SPA_LOG_IMPL_INIT(name) \
85 { { { SPA_TYPE_INTERFACE_Log, SPA_VERSION_LOG, \
86 SPA_CALLBACKS_INIT(&name.methods, &name) }, \
87 SPA_LOG_LEVEL_INFO, }, \
88 { SPA_VERSION_LOG_METHODS, \
92 #define SPA_LOG_IMPL(name) \
93 SPA_LOG_IMPL_DEFINE(name) = SPA_LOG_IMPL_INIT(name)
spa_log_level
Definition: output/doc/spa/support/log.h:46
void spa_log_impl_log(void *object, enum spa_log_level level, const char *file, int line, const char *func, const char *fmt,...)
Definition: log-impl.h:65
void spa_log_impl_logv(void *object, enum spa_log_level level, const char *file, int line, const char *func, const char *fmt, va_list args)
Definition: log-impl.h:42
#define SPA_PRINTF_FUNC(fmt, arg1)
Definition: defs.h:205