1、参考代码: libvlc.h libvlc_structures.h
2、相关函数
VLC_PUBLIC_API unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance,
libvlc_exception_t *p_e );
* Return the VLC messaging verbosity level.
VLC_PUBLIC_API void libvlc_set_log_verbosity( libvlc_instance_t *p_instance, unsigned level,
libvlc_exception_t *p_e );
* Set the VLC messaging verbosity level[0,1,2].
VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( libvlc_instance_t *, libvlc_exception_t *);
* Open a VLC message log instance.
*\return log message instance
VLC_PUBLIC_API void libvlc_log_close( libvlc_log_t *, libvlc_exception_t *);
* Close a VLC message log instance.
VLC_PUBLIC_API unsigned libvlc_log_count( const libvlc_log_t *, libvlc_exception_t *);
* Returns the number of messages in a log instance.
VLC_PUBLIC_API void libvlc_log_clear( libvlc_log_t *, libvlc_exception_t *);
* Clear a log instance.
* All messages in the log are removed. The log should be cleared on a
* regular basis to avoid clogging.
VLC_PUBLIC_API libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_t *, libvlc_exception_t *);
* Allocate and returns a new iterator to messages in log.
* \return log iterator object
VLC_PUBLIC_API void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
* Release a previoulsy allocated iterator.
VLC_PUBLIC_API int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );
* Return whether log iterator has more messages.
VLC_PUBLIC_API libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterator_t *p_iter,
libvlc_log_message_t *p_buffer,
libvlc_exception_t *p_e );
* Return the next log message.
数据结构
/** This structure is opaque. It represents a libvlc log instance */typedef struct libvlc_log_t libvlc_log_t;
/** This structure is opaque. It represents a libvlc log iterator */
typedef struct libvlc_log_iterator_t libvlc_log_iterator_t;
typedef struct libvlc_log_message_t
{
int i_severity; /* 0=INFO, 1=ERR, 2=WARN, 3=DBG */
const char *psz_type; /* module type */
const char *psz_name; /* module name */
const char *psz_header; /* optional header */
const char *psz_message; /* message */
} libvlc_log_message_t;
方法:
首先开启日志 libvlc_log_open,设置冗余度
libvlc_get_log_verbosity()libvlc_set_log_verbosity()
设置定时器定时访问日志
libvlc_log_get_iterator();
迭代输出 while(libvlc_log_iterator_has_next(p_iter_temp, &ex ))
{
libvlc_log_iterator_next( p_iter_temp,&buffer,&ex );
}
libvlc_log_iterator_free(p_iter_temp,&ex);
libvlc_log_clear(p_log_t_temp,&ex);
注意清空,消息只能存储256条,多了溢出。
关闭定时器
关闭日志libvlc_log_close