PipeWire  1.0.3
Logging

Logging functions of PipeWire. More...

Files

file  log.h
 pipewire/log.h
 

Macros

#define PW_LOG_TOPIC_STATIC(var, topic)
 Declare a static log topic named var. More...
 
#define PW_LOG_TOPIC_EXTERN(var)   extern struct spa_log_topic *var
 Declare a static log topic named var. More...
 
#define PW_LOG_TOPIC(var, topic)
 Declare a static log topic named var. More...
 
#define PW_LOG_TOPIC_INIT(var)   spa_log_topic_init(pw_log_get(), var);
 
#define pw_log_level_enabled(lev)   (pw_log_level >= (lev))
 Check if a loglevel is enabled. More...
 
#define pw_log_topic_enabled(lev, t)   ((t) && (t)->has_custom_level ? (t)->level >= (lev) : pw_log_level_enabled((lev)))
 
#define pw_logtv(lev, topic, fmt, ap)
 
#define pw_logt(lev, topic, ...)
 
#define pw_log(lev, ...)   pw_logt(lev,PW_LOG_TOPIC_DEFAULT,__VA_ARGS__)
 
#define pw_log_error(...)    pw_log(SPA_LOG_LEVEL_ERROR,__VA_ARGS__)
 
#define pw_log_warn(...)    pw_log(SPA_LOG_LEVEL_WARN,__VA_ARGS__)
 
#define pw_log_info(...)    pw_log(SPA_LOG_LEVEL_INFO,__VA_ARGS__)
 
#define pw_log_debug(...)    pw_log(SPA_LOG_LEVEL_DEBUG,__VA_ARGS__)
 
#define pw_log_trace(...)    pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)
 
#define pw_logt_error(t, ...)    pw_logt(SPA_LOG_LEVEL_ERROR,t,__VA_ARGS__)
 
#define pw_logt_warn(t, ...)    pw_logt(SPA_LOG_LEVEL_WARN,t,__VA_ARGS__)
 
#define pw_logt_info(t, ...)    pw_logt(SPA_LOG_LEVEL_INFO,t,__VA_ARGS__)
 
#define pw_logt_debug(t, ...)    pw_logt(SPA_LOG_LEVEL_DEBUG,t,__VA_ARGS__)
 
#define pw_logt_trace(t, ...)    pw_logt(SPA_LOG_LEVEL_TRACE,t,__VA_ARGS__)
 
#define pw_log_trace_fp(...)    pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)
 

Functions

void pw_log_set (struct spa_log *log)
 Configure a logging module. More...
 
struct spa_logpw_log_get (void)
 Get the log interface. More...
 
void pw_log_set_level (enum spa_log_level level)
 Configure the logging level. More...
 
void pw_log_logt (enum spa_log_level level, const struct spa_log_topic *topic, const char *file, int line, const char *func, const char *fmt,...) 1(6
 Log a message for a topic. More...
 
void void pw_log_logtv (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) 1(6
 Log a message for a topic. More...
 
void void void pw_log_log (enum spa_log_level level, const char *file, int line, const char *func, const char *fmt,...) 1(5
 Log a message for the default topic. More...
 
void void void void pw_log_logv (enum spa_log_level level, const char *file, int line, const char *func, const char *fmt, va_list args) 1(5
 Log a message for the default topic. More...
 

Variables

enum spa_log_level pw_log_level
 The global log level. More...
 
struct spa_log_topicPW_LOG_TOPIC_DEFAULT
 

Detailed Description

Logging functions of PipeWire.

Logging is performed to stdout and stderr. Trace logging is performed in a lockfree ringbuffer and written out from the main thread as to not block the realtime threads.

Macro Definition Documentation

#define PW_LOG_TOPIC_STATIC (   var,
  topic 
)

Declare a static log topic named var.

The usual usage is:

1  PW_LOG_TOPIC_STATIC(my_topic);
2 /** \ingroup pw_log */
3  #define PW_LOG_TOPIC_DEFAULT my_topic
4 
5  void foo() {
6  pw_log_debug("bar");
7  }
#define PW_LOG_TOPIC_EXTERN (   var)    extern struct spa_log_topic *var

Declare a static log topic named var.

See PW_LOG_TOPIC_STATIC for an example usage.

#define PW_LOG_TOPIC (   var,
  topic 
)

Declare a static log topic named var.

See PW_LOG_TOPIC_STATIC for an example usage.

#define PW_LOG_TOPIC_INIT (   var)    spa_log_topic_init(pw_log_get(), var);
#define pw_log_level_enabled (   lev)    (pw_log_level >= (lev))

Check if a loglevel is enabled.

#define pw_log_topic_enabled (   lev,
 
)    ((t) && (t)->has_custom_level ? (t)->level >= (lev) : pw_log_level_enabled((lev)))
#define pw_logtv (   lev,
  topic,
  fmt,
  ap 
)
#define pw_logt (   lev,
  topic,
  ... 
)
#define pw_log (   lev,
  ... 
)    pw_logt(lev,PW_LOG_TOPIC_DEFAULT,__VA_ARGS__)
#define pw_log_info (   ...)    pw_log(SPA_LOG_LEVEL_INFO,__VA_ARGS__)
#define pw_log_debug (   ...)    pw_log(SPA_LOG_LEVEL_DEBUG,__VA_ARGS__)
#define pw_logt_error (   t,
  ... 
)    pw_logt(SPA_LOG_LEVEL_ERROR,t,__VA_ARGS__)
#define pw_logt_warn (   t,
  ... 
)    pw_logt(SPA_LOG_LEVEL_WARN,t,__VA_ARGS__)
#define pw_logt_info (   t,
  ... 
)    pw_logt(SPA_LOG_LEVEL_INFO,t,__VA_ARGS__)
#define pw_logt_debug (   t,
  ... 
)    pw_logt(SPA_LOG_LEVEL_DEBUG,t,__VA_ARGS__)
#define pw_logt_trace (   t,
  ... 
)    pw_logt(SPA_LOG_LEVEL_TRACE,t,__VA_ARGS__)
#define pw_log_trace_fp (   ...)    pw_log(SPA_LOG_LEVEL_TRACE,__VA_ARGS__)

Function Documentation

void pw_log_set ( struct spa_log log)

Configure a logging module.

This is usually done automatically in pw_init() but you can install a custom logger before calling pw_init().

Configure a logging module.

Parameters
logthe global log to set
struct spa_log* pw_log_get ( void  )

Get the log interface.

Get the log interface.

Returns
the global log
void pw_log_set_level ( enum spa_log_level  level)

Configure the logging level.

Configure the logging level.

Parameters
levelthe new log level
void pw_log_logt ( enum spa_log_level  level,
const struct spa_log_topic topic,
const char *  file,
int  line,
const char *  func,
const char *  fmt,
  ... 
)

Log a message for a topic.

void void pw_log_logtv ( 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 
)

Log a message for a topic.

void void void pw_log_log ( enum spa_log_level  level,
const char *  file,
int  line,
const char *  func,
const char *  fmt,
  ... 
)

Log a message for the default topic.

void void void void pw_log_logv ( enum spa_log_level  level,
const char *  file,
int  line,
const char *  func,
const char *  fmt,
va_list  args 
)

Log a message for the default topic.

Variable Documentation

enum spa_log_level pw_log_level

The global log level.

struct spa_log_topic* PW_LOG_TOPIC_DEFAULT