SphinxBase 5prealpha
|
Implementation of logging routines. More...
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sphinxbase/sphinxbase_export.h>
Go to the source code of this file.
Macros | |
#define | E_SYSCALL(stmt, ...) if (stmt) E_FATAL_SYSTEM(__VA_ARGS__); |
#define | FILELINE __FILE__ , __LINE__ |
#define | E_FATAL(...) |
Exit with non-zero status after error message. | |
#define | E_FATAL_SYSTEM(...) |
Print error text; Call perror(""); exit(errno);. | |
#define | E_ERROR_SYSTEM(...) err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__) |
Print error text; Call perror("");. | |
#define | E_ERROR(...) err_msg(ERR_ERROR, FILELINE, __VA_ARGS__) |
Print error message to error log. | |
#define | E_WARN(...) err_msg(ERR_WARN, FILELINE, __VA_ARGS__) |
Print warning message to error log. | |
#define | E_INFO(...) err_msg(ERR_INFO, FILELINE, __VA_ARGS__) |
Print logging information to standard error stream. | |
#define | E_INFOCONT(...) err_msg(ERR_INFOCONT, NULL, 0, __VA_ARGS__) |
Continue printing the information to standard error stream. | |
#define | E_INFO_NOFN(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__) |
Print logging information without filename. | |
#define | E_DEBUG(level, x) |
Print debugging information to standard error stream. | |
#define | E_DEBUGCONT(level, x) |
Typedefs | |
typedef enum err_e | err_lvl_t |
typedef void(* | err_cb_f) (void *user_data, err_lvl_t, const char *,...) |
Enumerations | |
enum | err_e { ERR_DEBUG , ERR_INFO , ERR_INFOCONT , ERR_WARN , ERR_ERROR , ERR_FATAL , ERR_MAX } |
Functions | |
SPHINXBASE_EXPORT void | err_msg (err_lvl_t lvl, const char *path, long ln, const char *fmt,...) |
SPHINXBASE_EXPORT void | err_msg_system (err_lvl_t lvl, const char *path, long ln, const char *fmt,...) |
SPHINXBASE_EXPORT void | err_logfp_cb (void *user_data, err_lvl_t level, const char *fmt,...) |
SPHINXBASE_EXPORT void | err_set_callback (err_cb_f callback, void *user_data) |
Sets function to output error messages. | |
SPHINXBASE_EXPORT void | err_set_logfp (FILE *stream) |
Direct all logging to a given filehandle if default logfp callback is set. | |
SPHINXBASE_EXPORT FILE * | err_get_logfp (void) |
Get the current logging filehandle. | |
SPHINXBASE_EXPORT int | err_set_logfile (const char *path) |
Append all log messages to a given file. | |
SPHINXBASE_EXPORT int | err_set_debug_level (int level) |
Set debugging verbosity level. | |
SPHINXBASE_EXPORT int | err_get_debug_level (void) |
Get debugging verbosity level. | |
Implementation of logging routines.
Logging, warning, debug and error message output funtionality is provided in this file. Sphinxbase defines several level of logging messages - INFO, WARNING, ERROR, FATAL. By default output goes to standard error output.
Logging is implemented through macros. They take same arguments as printf: format string and values. By default source file name and source line are prepended to the message. Log output could be redirected to any file using err_set_logfp() and err_set_logfile() functions. To disable logging in your application, call err_set_logfp(NULL).
It's possible to log multiline info messages, to do that you need to start message with E_INFO and output other lines with E_INFOCONT.
Definition in file err.h.
#define E_DEBUG | ( | level, | |
x ) |
Print debugging information to standard error stream.
This will only print a message if:
Note that for portability reasons the format and arguments must be enclosed in an extra set of parentheses.
#define E_ERROR | ( | ... | ) | err_msg(ERR_ERROR, FILELINE, __VA_ARGS__) |
Print error message to error log.
Definition at line 104 of file err.h.
Referenced by bio_readhdr(), bio_writehdr(), cmd_ln_access_r(), cmd_ln_init(), cmd_ln_parse(), cmd_ln_parse_file_r(), cmd_ln_parse_r(), cmd_ln_set_float_r(), cmd_ln_set_int_r(), cmd_ln_set_str_r(), feat_init(), feat_read_lda(), feat_s2mfc2feat(), feat_set_subvecs(), fopen_comp(), jsgf_parse_file(), jsgf_parse_string(), jsgf_read_file(), jsgf_read_string(), listelem_alloc_init(), listelem_get_item(), logmath_init(), logmath_read(), logmath_write(), ngram_model_add_class(), ngram_model_add_class_word(), ngram_model_read(), ngram_model_set_init(), ngram_model_set_interp(), ngram_model_set_read(), ngram_model_write(), sbevent_init(), sbthread_start(), and sbthread_wait().
#define E_ERROR_SYSTEM | ( | ... | ) | err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__) |
Print error text; Call perror("");.
Definition at line 99 of file err.h.
Referenced by bio_fread_2d(), bio_fread_3d(), bio_fwrite_1d(), bio_fwrite_3d(), bio_read_wavfile(), build_directory(), feat_read_lda(), fopen_comp(), fread_retry(), jsgf_parse_file(), logmath_read(), logmath_write(), mmio_file_read(), mmio_file_unmap(), ngram_model_set_read(), sbevent_init(), and stat_retry().
#define E_FATAL | ( | ... | ) |
Exit with non-zero status after error message.
Definition at line 81 of file err.h.
Referenced by __ckd_calloc_4d__(), agc_type_from_str(), bio_fread_1d(), bio_verify_chksum(), cmn_live(), cmn_type_from_str(), determinant(), feat_init(), feat_read_lda(), fopen_comp(), invert(), parse_subvecs(), and solve().
#define E_FATAL_SYSTEM | ( | ... | ) |
Print error text; Call perror(""); exit(errno);.
Definition at line 90 of file err.h.
Referenced by bio_read_wavfile().
#define E_INFO | ( | ... | ) | err_msg(ERR_INFO, FILELINE, __VA_ARGS__) |
Print logging information to standard error stream.
Definition at line 114 of file err.h.
Referenced by agc_emax_set(), agc_emax_update(), agc_max(), agc_noise(), cmd_ln_appl_enter(), cmn(), cmn_live_set(), cmn_live_update(), feat_init(), feat_s2mfc2feat(), listelem_stats(), logmath_read(), logmath_write(), and ngram_model_set_read().
#define E_INFO_NOFN | ( | ... | ) | err_msg(ERR_INFO, NULL, 0, __VA_ARGS__) |
Print logging information without filename.
Definition at line 124 of file err.h.
Referenced by feat_report().
#define E_INFOCONT | ( | ... | ) | err_msg(ERR_INFOCONT, NULL, 0, __VA_ARGS__) |
Continue printing the information to standard error stream.
Definition at line 119 of file err.h.
Referenced by cmd_ln_appl_enter(), cmn(), cmn_live_set(), cmn_live_update(), and feat_report().
#define E_SYSCALL | ( | stmt, | |
... ) if (stmt) E_FATAL_SYSTEM(__VA_ARGS__); |
#define E_WARN | ( | ... | ) | err_msg(ERR_WARN, FILELINE, __VA_ARGS__) |
Print warning message to error log.
Definition at line 109 of file err.h.
Referenced by cmd_ln_parse_file_r(), feat_read_lda(), fopen_compchk(), listelem_alloc_init(), logmath_read(), ngram_model_add_word(), and ngram_model_casefold().
typedef void(* err_cb_f) (void *user_data, err_lvl_t, const char *,...) |
SPHINXBASE_EXPORT int err_get_debug_level | ( | void | ) |
SPHINXBASE_EXPORT FILE * err_get_logfp | ( | void | ) |
Get the current logging filehandle.
Definition at line 268 of file err.c.
Referenced by cmd_ln_parse_r(), and err_set_logfile().
SPHINXBASE_EXPORT void err_logfp_cb | ( | void * | user_data, |
err_lvl_t | level, | ||
const char * | fmt, | ||
... ) |
SPHINXBASE_EXPORT void err_msg | ( | err_lvl_t | lvl, |
const char * | path, | ||
long | ln, | ||
const char * | fmt, | ||
... ) |
SPHINXBASE_EXPORT void err_msg_system | ( | err_lvl_t | lvl, |
const char * | path, | ||
long | ln, | ||
const char * | fmt, | ||
... ) |
SPHINXBASE_EXPORT void err_set_callback | ( | err_cb_f | callback, |
void * | user_data ) |
SPHINXBASE_EXPORT int err_set_debug_level | ( | int | level | ) |
SPHINXBASE_EXPORT int err_set_logfile | ( | const char * | path | ) |
Append all log messages to a given file.
Previous logging filehandle is closed (unless it was stdout or stderr).
path | File path to send log messages to |
Definition at line 241 of file err.c.
References err_get_logfp(), and err_set_logfp().
SPHINXBASE_EXPORT void err_set_logfp | ( | FILE * | stream | ) |
Direct all logging to a given filehandle if default logfp callback is set.
stream | Filehandle to send log messages to, or NULL to disable logging. |
Definition at line 255 of file err.c.
Referenced by err_set_logfile().