VLC  3.0.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Enumerations | Functions
LibVLC logging
LibVLC core

libvlc_log_* functions provide access to the LibVLC messages log. More...

Collaboration diagram for LibVLC logging:

Typedefs

typedef struct vlc_log_t libvlc_log_t
typedef void(* libvlc_log_cb )(void *data, int level, const libvlc_log_t *ctx, const char *fmt, va_list args)
 Callback prototype for LibVLC log message handler.

Enumerations

enum  libvlc_log_level { LIBVLC_DEBUG = 0, LIBVLC_NOTICE = 2, LIBVLC_WARNING = 3, LIBVLC_ERROR = 4 }
 Logging messages level. More...

Functions

void libvlc_log_get_context (const libvlc_log_t *ctx, const char **module, const char **file, unsigned *line)
 Gets debugging information about a log message: the name of the VLC module emitting the message and the message location within the source code.
void libvlc_log_get_object (const libvlc_log_t *ctx, const char **name, const char **header, uintptr_t *id)
 Gets VLC object information about a log message: the type name of the VLC object emitting the message, the object header if any and a temporaly-unique object identifier.
void libvlc_log_unset (libvlc_instance_t *)
 Unsets the logging callback for a LibVLC instance.
void libvlc_log_set (libvlc_instance_t *, libvlc_log_cb cb, void *data)
 Sets the logging callback for a LibVLC instance.
void libvlc_log_set_file (libvlc_instance_t *, FILE *stream)
 Sets up logging to a file.
unsigned libvlc_get_log_verbosity (const libvlc_instance_t *p_instance)
 Always returns minus one.
void libvlc_set_log_verbosity (libvlc_instance_t *p_instance, unsigned level)
 This function does nothing.
libvlc_log_tlibvlc_log_open (libvlc_instance_t *p_instance)
 This function does nothing useful.
void libvlc_log_close (libvlc_log_t *p_log)
 Frees memory allocated by libvlc_log_open().
unsigned libvlc_log_count (const libvlc_log_t *p_log)
 Always returns zero.
void libvlc_log_clear (libvlc_log_t *p_log)
 This function does nothing.
libvlc_log_iterator_tlibvlc_log_get_iterator (const libvlc_log_t *p_log)
 This function does nothing useful.
void libvlc_log_iterator_free (libvlc_log_iterator_t *p_iter)
 Frees memory allocated by libvlc_log_get_iterator().
int libvlc_log_iterator_has_next (const libvlc_log_iterator_t *p_iter)
 Always returns zero.
libvlc_log_message_tlibvlc_log_iterator_next (libvlc_log_iterator_t *p_iter, libvlc_log_message_t *p_buf)
 Always returns NULL.
typedef struct
libvlc_log_iterator_t 
libvlc_log_iterator_t
 This structure is opaque.
typedef struct libvlc_log_message_t libvlc_log_message_t

Detailed Description

libvlc_log_* functions provide access to the LibVLC messages log.

This is used for logging and debugging.

Typedef Documentation

typedef void(* libvlc_log_cb)(void *data, int level, const libvlc_log_t *ctx, const char *fmt, va_list args)

Callback prototype for LibVLC log message handler.

Parameters
datadata pointer as given to libvlc_log_set()
levelmessage level (enum libvlc_log_level)
ctxmessage context (meta-information about the message)
fmtprintf() format string (as defined by ISO C11)
argsvariable argument list for the format
Note
Log message handlers must be thread-safe.
Warning
The message context pointer, the format string parameters and the variable arguments are only valid until the callback returns.

This structure is opaque.

It represents a libvlc log iterator

typedef struct vlc_log_t libvlc_log_t

Enumeration Type Documentation

Logging messages level.

Note
Future LibVLC versions may define new levels.
Enumerator:
LIBVLC_DEBUG 

Debug message.

LIBVLC_NOTICE 

Important informational message.

LIBVLC_WARNING 

Warning (potential error) message.

LIBVLC_ERROR 

Error message.

Function Documentation

unsigned libvlc_get_log_verbosity ( const libvlc_instance_t p_instance)

Always returns minus one.

This function is only provided for backward compatibility.

Parameters
p_instanceignored
Returns
always -1
void libvlc_log_clear ( libvlc_log_t p_log)

This function does nothing.

It is only provided for backward compatibility.

Parameters
p_logignored
void libvlc_log_close ( libvlc_log_t p_log)

Frees memory allocated by libvlc_log_open().

Parameters
p_loglibvlc log instance or NULL
unsigned libvlc_log_count ( const libvlc_log_t p_log)

Always returns zero.

This function is only provided for backward compatibility.

Parameters
p_logignored
Returns
always zero
void libvlc_log_get_context ( const libvlc_log_t ctx,
const char **  module,
const char **  file,
unsigned *  line 
)

Gets debugging information about a log message: the name of the VLC module emitting the message and the message location within the source code.

The returned module name and file name will be NULL if unknown. The returned line number will similarly be zero if unknown.

Parameters
ctxmessage context (as passed to the libvlc_log_cb callback)
modulemodule name storage (or NULL) [OUT]
filesource code file name storage (or NULL) [OUT]
linesource code file line number storage (or NULL) [OUT]
Warning
The returned module name and source code file name, if non-NULL, are only valid until the logging callback returns.
Version
LibVLC 2.1.0 or later
libvlc_log_iterator_t* libvlc_log_get_iterator ( const libvlc_log_t p_log)

This function does nothing useful.

It is only provided for backward compatibility.

Parameters
p_logignored
Returns
an unique pointer or NULL on error or if the parameter was NULL
void libvlc_log_get_object ( const libvlc_log_t ctx,
const char **  name,
const char **  header,
uintptr_t *  id 
)

Gets VLC object information about a log message: the type name of the VLC object emitting the message, the object header if any and a temporaly-unique object identifier.

This information is mainly meant for manual troubleshooting.

The returned type name may be "generic" if unknown, but it cannot be NULL. The returned header will be NULL if unset; in current versions, the header is used to distinguish for VLM inputs. The returned object ID will be zero if the message is not associated with any VLC object.

Parameters
ctxmessage context (as passed to the libvlc_log_cb callback)
nameobject name storage (or NULL) [OUT]
headerobject header (or NULL) [OUT]
linesource code file line number storage (or NULL) [OUT]
Warning
The returned module name and source code file name, if non-NULL, are only valid until the logging callback returns.
Version
LibVLC 2.1.0 or later
void libvlc_log_iterator_free ( libvlc_log_iterator_t p_iter)

Frees memory allocated by libvlc_log_get_iterator().

Parameters
p_iterlibvlc log iterator or NULL
int libvlc_log_iterator_has_next ( const libvlc_log_iterator_t p_iter)

Always returns zero.

This function is only provided for backward compatibility.

Parameters
p_iterignored
Returns
always zero
libvlc_log_message_t* libvlc_log_iterator_next ( libvlc_log_iterator_t p_iter,
libvlc_log_message_t p_buf 
)

Always returns NULL.

This function is only provided for backward compatibility.

Parameters
p_iterlibvlc log iterator or NULL
p_bufignored
Returns
always NULL
libvlc_log_t* libvlc_log_open ( libvlc_instance_t p_instance)

This function does nothing useful.

It is only provided for backward compatibility.

Parameters
p_instancelibvlc instance
Returns
an unique pointer or NULL on error
void libvlc_log_set ( libvlc_instance_t ,
libvlc_log_cb  cb,
void *  data 
)

Sets the logging callback for a LibVLC instance.

This function is thread-safe: it will wait for any pending callbacks invocation to complete.

Parameters
cbcallback function pointer
dataopaque data pointer for the callback function
Note
Some log messages (especially debug) are emitted by LibVLC while is being initialized. These messages cannot be captured with this interface.
Warning
A deadlock may occur if this function is called from the callback.
Parameters
p_instancelibvlc instance
Version
LibVLC 2.1.0 or later
void libvlc_log_set_file ( libvlc_instance_t ,
FILE *  stream 
)

Sets up logging to a file.

Parameters
p_instancelibvlc instance
streamFILE pointer opened for writing (the FILE pointer must remain valid until libvlc_log_unset())
Version
LibVLC 2.1.0 or later
void libvlc_log_unset ( libvlc_instance_t )

Unsets the logging callback for a LibVLC instance.

This is rarely needed: the callback is implicitly unset when the instance is destroyed. This function will wait for any pending callbacks invocation to complete (causing a deadlock if called from within the callback).

Parameters
p_instancelibvlc instance
Version
LibVLC 2.1.0 or later
void libvlc_set_log_verbosity ( libvlc_instance_t p_instance,
unsigned  level 
)

This function does nothing.

It is only provided for backward compatibility.

Parameters
p_instanceignored
levelignored