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__)
130#define E_DEBUG(...) err_msg(ERR_DEBUG, NULL, 0, __VA_ARGS__)
145SPHINXBASE_EXPORT
void
146err_msg(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
148SPHINXBASE_EXPORT
void
149err_msg_system(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
151SPHINXBASE_EXPORT
void
152err_logfp_cb(
void * user_data, err_lvl_t level,
const char *fmt, ...);
154typedef void (*err_cb_f)(
void* user_data, err_lvl_t,
const char *, ...);
164SPHINXBASE_EXPORT
void
172SPHINXBASE_EXPORT
void
181SPHINXBASE_EXPORT FILE *
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 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.