SphinxBase  0.6
err.h File Reference

Implementation of logging routines. More...

#include <stdarg.h>
#include <stdio.h>
#include <errno.h>
#include <sphinxbase/sphinxbase_export.h>

Go to the source code of this file.

Macros

#define E_FATAL   _E__pr_header(__FILE__, __LINE__, "FATAL_ERROR"),_E__die_error
 Exit with non-zero status after error message.
 
#define E_FATAL_SYSTEM   _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__fatal_sys_error
 Print error text; Call perror(""); exit(errno);.
 
#define E_WARN_SYSTEM   _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
 Print error text; Call perror("");.
 
#define E_ERROR_SYSTEM   _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
 Print error text; Call perror("");.
 
#define E_INFO   _E__pr_info_header(__FILE__, __LINE__, "INFO"),_E__pr_info
 Print logging information to standard error stream.
 
#define E_INFOCONT   _E__pr_info
 Print logging information without header, to standard error stream.
 
#define E_INFO_NOFN   _E__pr_info_header_wofn("INFO"),_E__pr_info
 Print logging information without filename.
 
#define E_WARN   _E__pr_header(__FILE__, __LINE__, "WARNING"),_E__pr_warn
 Print warning information to standard error stream.
 
#define E_ERROR   _E__pr_header(__FILE__, __LINE__, "ERROR"),_E__pr_warn
 Print error message to standard error stream.
 
#define E_DEBUG(level, x)
 Print debugging information to standard error stream. More...
 
#define E_DEBUGCONT(level, x)
 

Functions

SPHINXBASE_EXPORT void _E__pr_header (char const *file, long line, char const *msg)
 
SPHINXBASE_EXPORT void _E__pr_debug_header (char const *file, long line, int level)
 
SPHINXBASE_EXPORT void _E__pr_info_header (char const *file, long line, char const *tag)
 
SPHINXBASE_EXPORT void _E__pr_info_header_wofn (char const *msg)
 
SPHINXBASE_EXPORT void _E__pr_warn (char const *fmt,...)
 
SPHINXBASE_EXPORT void _E__pr_info (char const *fmt,...)
 
SPHINXBASE_EXPORT void _E__die_error (char const *fmt,...)
 
SPHINXBASE_EXPORT void _E__abort_error (char const *fmt,...)
 
SPHINXBASE_EXPORT void _E__sys_error (char const *fmt,...)
 
SPHINXBASE_EXPORT void _E__fatal_sys_error (char const *fmt,...)
 
SPHINXBASE_EXPORT FILE * err_set_logfp (FILE *logfp)
 Direct all logging to a given filehandle. More...
 
SPHINXBASE_EXPORT FILE * err_get_logfp (void)
 Get the current logging filehandle. More...
 
SPHINXBASE_EXPORT int err_set_logfile (char const *file)
 Append all log messages to a given file. More...
 
SPHINXBASE_EXPORT int err_set_debug_level (int level)
 Set debugging verbosity level. More...
 
SPHINXBASE_EXPORT int err_get_debug_level (void)
 Get debugging verbosity level. More...
 

Detailed Description

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.

Macro Definition Documentation

#define E_DEBUG (   level,
 
)

Print debugging information to standard error stream.

This will only print a message if:

  1. Debugging is enabled at compile time
  2. The debug level is greater than or equal to level

Note that for portability reasons the format and arguments must be enclosed in an extra set of parentheses.

Definition at line 212 of file err.h.

Function Documentation

SPHINXBASE_EXPORT int err_get_debug_level ( void  )

Get debugging verbosity level.

Note that debugging messages are only enabled when compiled with -DDEBUG.

Definition at line 74 of file err.c.

SPHINXBASE_EXPORT FILE* err_get_logfp ( void  )

Get the current logging filehandle.

Returns
Current logging filehandle, NULL if disabled.

Definition at line 157 of file err.c.

Referenced by cmd_ln_parse_r(), err_set_logfile(), and err_set_logfp().

SPHINXBASE_EXPORT int err_set_debug_level ( int  level)

Set debugging verbosity level.

Note that debugging messages are only enabled when compiled with -DDEBUG.

Parameters
levelVerbosity level to set, or 0 to disable debug messages.

Definition at line 68 of file err.c.

SPHINXBASE_EXPORT int err_set_logfile ( char const *  file)

Append all log messages to a given file.

Previous logging filehandle is closed (unless it was stdout or stderr).

Parameters
fileFile to send log messages to, or NULL to disable logging.
Returns
0 for success, <0 for failure (e.g. if file does not exist)

Definition at line 190 of file err.c.

References err_get_logfp().

Referenced by cmd_ln_parse_r().

SPHINXBASE_EXPORT FILE* err_set_logfp ( FILE *  logfp)

Direct all logging to a given filehandle.

Parameters
logfpFilehandle to send log messages to, or NULL to disable logging.
Returns
Previous logging filehandle, if any.

Definition at line 179 of file err.c.

References err_get_logfp().