PocketSphinx
5.0.0
A small speech recognizer
|
Implementation of logging routines. More...
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <pocketsphinx/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(...) |
#define | E_FATAL_SYSTEM(...) |
#define | E_ERROR_SYSTEM(...) err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__) |
#define | E_ERROR(...) err_msg(ERR_ERROR, FILELINE, __VA_ARGS__) |
#define | E_WARN(...) err_msg(ERR_WARN, FILELINE, __VA_ARGS__) |
#define | E_INFO(...) err_msg(ERR_INFO, FILELINE, __VA_ARGS__) |
#define | E_INFOCONT(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__) |
#define | E_INFO_NOFN(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__) |
#define | E_DEBUG(...) |
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_WARN, ERR_ERROR, ERR_FATAL, ERR_MAX } |
Functions | |
POCKETSPHINX_EXPORT void | err_msg (err_lvl_t lvl, const char *path, long ln, const char *fmt,...) |
POCKETSPHINX_EXPORT void | err_msg_system (err_lvl_t lvl, const char *path, long ln, const char *fmt,...) |
POCKETSPHINX_EXPORT void | err_logfp_cb (void *user_data, err_lvl_t level, const char *fmt,...) |
POCKETSPHINX_EXPORT int | err_set_loglevel (err_lvl_t lvl) |
const POCKETSPHINX_EXPORT char * | err_set_loglevel_str (const char *lvl) |
POCKETSPHINX_EXPORT void | err_set_callback (err_cb_f callback, void *user_data) |
POCKETSPHINX_EXPORT void | err_set_logfp (FILE *stream) |
POCKETSPHINX_EXPORT FILE * | err_get_logfp (void) |
POCKETSPHINX_EXPORT int | err_set_logfile (const char *path) |
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.
#define E_FATAL | ( | ... | ) |
#define E_FATAL_SYSTEM | ( | ... | ) |
#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_INFO, 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 | ( | ... | ) |
Debug is disabled by default
POCKETSPHINX_EXPORT int err_set_loglevel | ( | err_lvl_t | lvl | ) |
Set minimum logging level.
lvl | Level below which messages will not be logged (note ERR_DEBUG messages are not logged unless compiled in debugging mode) |
const POCKETSPHINX_EXPORT char* err_set_loglevel_str | ( | const char * | lvl | ) |
Set minimum logging levelfrom a string
lvl | Level below which messages will not be logged (note ERR_DEBUG messages are not logged unless compiled in debugging mode). A string corresponding to the names in enum err_e, but without the leading "ERR_" prefix. |
POCKETSPHINX_EXPORT void err_set_callback | ( | err_cb_f | callback, |
void * | user_data | ||
) |
Sets function to output error messages. Use it to redirect the logging to your application. By default the handler which dumps messages to stderr is set.
callback | callback to pass messages too |
user_data | data to pass to callback |
POCKETSPHINX_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. |
POCKETSPHINX_EXPORT FILE* err_get_logfp | ( | void | ) |
Get the current logging filehandle.
POCKETSPHINX_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 |