X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Finclude%2Futils%2Ferror.h;h=d00ee8c0f980b5abf8590b99f073a3344d0cdb1b;hb=HEAD;hp=e170a7d5e85109406a15af21d4247daa27cd0083;hpb=44a0aa91ac18582aa7415943dc37d06220576443;p=sysdb.git diff --git a/src/include/utils/error.h b/src/include/utils/error.h index e170a7d..d00ee8c 100644 --- a/src/include/utils/error.h +++ b/src/include/utils/error.h @@ -37,17 +37,13 @@ #ifndef SDB_UTILS_ERROR_H #define SDB_UTILS_ERROR_H 1 +#include #include #ifdef __cplusplus extern "C" { #endif -/* max length of any error message */ -#ifndef SDB_MAX_ERROR -# define SDB_MAX_ERROR 4096 -#endif /* ! SDB_MAX_ERROR */ - /* On Linux systems and possibly others, this should be the same as the LOG_ * constants defined by syslog. */ enum { @@ -66,6 +62,10 @@ enum { : ((prio) == SDB_LOG_INFO) ? "INFO" \ : ((prio) == SDB_LOG_DEBUG) ? "DEBUG" : "UNKNOWN") +#ifndef SDB_DEFAULT_LOGLEVEL +# define SDB_DEFAULT_LOGLEVEL SDB_LOG_INFO +#endif + /* * sdb_error_set_logger: * Set the logging callback to be used for logging messages. By default (or @@ -76,7 +76,7 @@ void sdb_error_set_logger(int (*f)(int, const char *)); /* - * sdb_log: + * sdb_log, sdb_vlog: * Log the specified message. The string will be formatted in printf-style * using the specified format and arguments and logged with the specified * priority. In addition, the error message will be stored as the current @@ -85,7 +85,10 @@ sdb_error_set_logger(int (*f)(int, const char *)); * on configuration, try a clean shut-down of the process. */ int -sdb_log(int prio, const char *fmt, ...); +sdb_log(int prio, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); +int +sdb_vlog(int prio, const char *fmt, va_list ap); /* * sdb_error_set, sdb_error_append: @@ -94,9 +97,11 @@ sdb_log(int prio, const char *fmt, ...); * be done. */ int -sdb_error_set(const char *fmt, ...); +sdb_error_set(const char *fmt, ...) + __attribute__((format(printf, 1, 2))); int -sdb_error_append(const char *fmt, ...); +sdb_error_append(const char *fmt, ...) + __attribute__((format(printf, 1, 2))); /* * sdb_error_chomp: @@ -130,6 +135,17 @@ sdb_error_get(void); int sdb_error_get_prio(void); +/* + * sdb_error_parse_priority: + * Parse the name of a log priority. + * + * Returns: + * - the numeric log priority on success + * - a negative value else + */ +int +sdb_error_parse_priority(char *prio); + /* * sdb_strerror: * This is a wrapper around the system's strerror function which ensures that