PipeWire
0.3.59
|
Logging interface. More...
Files | |
file | log-impl.h |
spa/support/log-impl.h | |
file | log.h |
spa/support/log.h | |
Data Structures | |
struct | spa_log |
struct | spa_log_topic |
Identifier for a topic. More... | |
struct | spa_log_methods |
Macros | |
#define | SPA_LOG_IMPL_DEFINE(name) |
#define | SPA_LOG_IMPL_INIT(name) |
#define | SPA_LOG_IMPL(name) SPA_LOG_IMPL_DEFINE(name) = SPA_LOG_IMPL_INIT(name) |
#define | SPA_LOG_TOPIC_DEFAULT NULL |
The default log topic. More... | |
#define | SPA_TYPE_INTERFACE_Log SPA_TYPE_INFO_INTERFACE_BASE "Log" |
The Log interface. More... | |
#define | SPA_VERSION_LOG 0 |
the version of this log. More... | |
#define | SPA_VERSION_LOG_TOPIC 0 |
#define | SPA_VERSION_LOG_METHODS 1 |
#define | SPA_LOG_TOPIC(v, t) (struct spa_log_topic){ .version = (v), .topic = (t)} |
#define | spa_log_topic_init(l, topic) |
#define | spa_log_level_enabled(l, lev) ((l) && (l)->level >= (lev)) |
#define | spa_log_level_topic_enabled(l, topic, lev) |
#define | spa_log_logt(l, lev, topic, ...) |
#define | spa_log_logtv(l, lev, topic, ...) |
#define | spa_logt_lev(l, lev, t, ...) spa_log_logt(l,lev,t,__FILE__,__LINE__,__func__,__VA_ARGS__) |
#define | spa_log_lev(l, lev, ...) spa_logt_lev(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define | spa_log_log(l, lev, ...) spa_log_logt(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define | spa_log_logv(l, lev, ...) spa_log_logtv(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define | spa_log_error(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_ERROR,__VA_ARGS__) |
#define | spa_log_warn(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_WARN,__VA_ARGS__) |
#define | spa_log_info(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_INFO,__VA_ARGS__) |
#define | spa_log_debug(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_DEBUG,__VA_ARGS__) |
#define | spa_log_trace(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_TRACE,__VA_ARGS__) |
#define | spa_logt_error(l, t, ...) spa_logt_lev(l,SPA_LOG_LEVEL_ERROR,t,__VA_ARGS__) |
#define | spa_logt_warn(l, t, ...) spa_logt_lev(l,SPA_LOG_LEVEL_WARN,t,__VA_ARGS__) |
#define | spa_logt_info(l, t, ...) spa_logt_lev(l,SPA_LOG_LEVEL_INFO,t,__VA_ARGS__) |
#define | spa_logt_debug(l, t, ...) spa_logt_lev(l,SPA_LOG_LEVEL_DEBUG,t,__VA_ARGS__) |
#define | spa_logt_trace(l, t, ...) spa_logt_lev(l,SPA_LOG_LEVEL_TRACE,t,__VA_ARGS__) |
#define | spa_log_trace_fp(l, ...) spa_log_lev(l,SPA_LOG_LEVEL_TRACE,__VA_ARGS__) |
#define | spa_log_hexdump(l, lev, indent, data, len) |
#define | SPA_KEY_LOG_LEVEL "log.level" |
keys can be given when initializing the logger handle More... | |
#define | SPA_KEY_LOG_COLORS "log.colors" |
enable colors in the logger More... | |
#define | SPA_KEY_LOG_FILE "log.file" |
log to the specified file instead of stderr. More... | |
#define | SPA_KEY_LOG_TIMESTAMP "log.timestamp" |
log timestamps More... | |
#define | SPA_KEY_LOG_LINE "log.line" |
log file and line numbers More... | |
#define | SPA_KEY_LOG_PATTERNS "log.patterns" |
Spa:String:JSON array of [ {"pattern" : level}, ... More... | |
Enumerations | |
enum | spa_log_level { SPA_LOG_LEVEL_NONE = 0 , SPA_LOG_LEVEL_ERROR , SPA_LOG_LEVEL_WARN , SPA_LOG_LEVEL_INFO , SPA_LOG_LEVEL_DEBUG , SPA_LOG_LEVEL_TRACE } |
Functions | |
static void | spa_log_impl_logtv (void *object, enum spa_log_level level, const struct spa_log_topic *topic, const char *file, int line, const char *func, const char *fmt, va_list args) |
static void | spa_log_impl_logt (void *object, enum spa_log_level level, const struct spa_log_topic *topic, const char *file, int line, const char *func, const char *fmt,...) |
static 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) |
static void | spa_log_impl_log (void *object, enum spa_log_level level, const char *file, int line, const char *func, const char *fmt,...) |
static void | spa_log_impl_topic_init (void *object, struct spa_log_topic *topic) |
Logging interface.
#define SPA_LOG_IMPL_DEFINE | ( | name | ) |
#define SPA_LOG_IMPL_INIT | ( | name | ) |
#define SPA_LOG_IMPL | ( | name | ) | SPA_LOG_IMPL_DEFINE(name) = SPA_LOG_IMPL_INIT(name) |
#define SPA_LOG_TOPIC_DEFAULT NULL |
The default log topic.
Redefine this in your code to allow for the spa_log_* macros to work correctly, e.g:
#define SPA_TYPE_INTERFACE_Log SPA_TYPE_INFO_INTERFACE_BASE "Log" |
The Log interface.
#define SPA_VERSION_LOG 0 |
the version of this log.
This can be used to expand this structure in the future
#define SPA_VERSION_LOG_TOPIC 0 |
#define SPA_VERSION_LOG_METHODS 1 |
#define SPA_LOG_TOPIC | ( | v, | |
t | |||
) | (struct spa_log_topic){ .version = (v), .topic = (t)} |
#define spa_log_topic_init | ( | l, | |
topic | |||
) |
#define spa_log_level_enabled | ( | l, | |
lev | |||
) | ((l) && (l)->level >= (lev)) |
#define spa_log_level_topic_enabled | ( | l, | |
topic, | |||
lev | |||
) |
#define spa_log_logt | ( | l, | |
lev, | |||
topic, | |||
... | |||
) |
#define spa_log_logtv | ( | l, | |
lev, | |||
topic, | |||
... | |||
) |
#define spa_logt_lev | ( | l, | |
lev, | |||
t, | |||
... | |||
) | spa_log_logt(l,lev,t,__FILE__,__LINE__,__func__,__VA_ARGS__) |
#define spa_log_lev | ( | l, | |
lev, | |||
... | |||
) | spa_logt_lev(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define spa_log_log | ( | l, | |
lev, | |||
... | |||
) | spa_log_logt(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define spa_log_logv | ( | l, | |
lev, | |||
... | |||
) | spa_log_logtv(l,lev,SPA_LOG_TOPIC_DEFAULT,__VA_ARGS__) |
#define spa_log_error | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_ERROR,__VA_ARGS__) |
#define spa_log_warn | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_WARN,__VA_ARGS__) |
#define spa_log_info | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_INFO,__VA_ARGS__) |
#define spa_log_debug | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_DEBUG,__VA_ARGS__) |
#define spa_log_trace | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_TRACE,__VA_ARGS__) |
#define spa_logt_error | ( | l, | |
t, | |||
... | |||
) | spa_logt_lev(l,SPA_LOG_LEVEL_ERROR,t,__VA_ARGS__) |
#define spa_logt_warn | ( | l, | |
t, | |||
... | |||
) | spa_logt_lev(l,SPA_LOG_LEVEL_WARN,t,__VA_ARGS__) |
#define spa_logt_info | ( | l, | |
t, | |||
... | |||
) | spa_logt_lev(l,SPA_LOG_LEVEL_INFO,t,__VA_ARGS__) |
#define spa_logt_debug | ( | l, | |
t, | |||
... | |||
) | spa_logt_lev(l,SPA_LOG_LEVEL_DEBUG,t,__VA_ARGS__) |
#define spa_logt_trace | ( | l, | |
t, | |||
... | |||
) | spa_logt_lev(l,SPA_LOG_LEVEL_TRACE,t,__VA_ARGS__) |
#define spa_log_trace_fp | ( | l, | |
... | |||
) | spa_log_lev(l,SPA_LOG_LEVEL_TRACE,__VA_ARGS__) |
#define spa_log_hexdump | ( | l, | |
lev, | |||
indent, | |||
data, | |||
len | |||
) |
#define SPA_KEY_LOG_LEVEL "log.level" |
keys can be given when initializing the logger handle
the default log level
#define SPA_KEY_LOG_COLORS "log.colors" |
enable colors in the logger
#define SPA_KEY_LOG_FILE "log.file" |
log to the specified file instead of stderr.
#define SPA_KEY_LOG_TIMESTAMP "log.timestamp" |
log timestamps
#define SPA_KEY_LOG_LINE "log.line" |
log file and line numbers
#define SPA_KEY_LOG_PATTERNS "log.patterns" |
Spa:String:JSON array of [ {"pattern" : level}, ...
]
enum spa_log_level |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |