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,
|  |  | x
| ) |  |

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

  level | Verbosity 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

  file | File 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

  logfp | Filehandle 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().