index b9256bb9a0a9422e223b17f869c83721f9a42a19..d00ee8c0f980b5abf8590b99f073a3344d0cdb1b 100644 (file)
#ifndef SDB_UTILS_ERROR_H
#define SDB_UTILS_ERROR_H 1
+#include <stdarg.h>
#include <stddef.h>
#ifdef __cplusplus
: ((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
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
* 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:
* 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:
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