38#ifndef _LIBUTIL_ERR_H_
39#define _LIBUTIL_ERR_H_
47#include <sphinxbase/sphinxbase_export.h>
74#define E_SYSCALL(stmt, ...) if (stmt) E_FATAL_SYSTEM(__VA_ARGS__);
76#define FILELINE __FILE__ , __LINE__
83 err_msg(ERR_FATAL, FILELINE, __VA_ARGS__); \
90#define E_FATAL_SYSTEM(...) \
92 err_msg_system(ERR_FATAL, FILELINE, __VA_ARGS__); \
99#define E_ERROR_SYSTEM(...) err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__)
104#define E_ERROR(...) err_msg(ERR_ERROR, FILELINE, __VA_ARGS__)
109#define E_WARN(...) err_msg(ERR_WARN, FILELINE, __VA_ARGS__)
114#define E_INFO(...) err_msg(ERR_INFO, FILELINE, __VA_ARGS__)
119#define E_INFOCONT(...) err_msg(ERR_INFOCONT, NULL, 0, __VA_ARGS__)
124#define E_INFO_NOFN(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__)
137#define E_DEBUG(level, ...) \
138 if (err_get_debug_level() >= level) \
139 err_msg(ERR_DEBUG, FILELINE, __VA_ARGS__)
140#define E_DEBUGCONT(level, ...) \
141 if (err_get_debug_level() >= level) \
142 err_msg(ERR_DEBUG, NULL, 0, __VA_ARGS__)
144#define E_DEBUG(level,x)
145#define E_DEBUGCONT(level,x)
158SPHINXBASE_EXPORT
void
159err_msg(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
161SPHINXBASE_EXPORT
void
162err_msg_system(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
164SPHINXBASE_EXPORT
void
165err_logfp_cb(
void * user_data, err_lvl_t level,
const char *fmt, ...);
167typedef void (*err_cb_f)(
void* user_data, err_lvl_t,
const char *, ...);
177SPHINXBASE_EXPORT
void
185SPHINXBASE_EXPORT
void
194SPHINXBASE_EXPORT FILE *
SPHINXBASE_EXPORT int err_get_debug_level(void)
Get debugging verbosity level.
SPHINXBASE_EXPORT int err_set_logfile(const char *path)
Append all log messages to a given file.
SPHINXBASE_EXPORT void err_set_logfp(FILE *stream)
Direct all logging to a given filehandle if default logfp callback is set.
SPHINXBASE_EXPORT int err_set_debug_level(int level)
Set debugging verbosity level.
SPHINXBASE_EXPORT void err_set_callback(err_cb_f callback, void *user_data)
Sets function to output error messages.
SPHINXBASE_EXPORT FILE * err_get_logfp(void)
Get the current logging filehandle.