#ifndef LOGMSG_H #define LOGMSG_H #include #include #include "error.h" extern void logmsg(const char *who, int ecode, unsigned int class, const char *msg); /* useful combinations of params */ /* class: FATAL (hard) - system error */ #define err_sys(w, e) logmsg(w, e, FATAL, "") #define err_sys_plus(w, e, m) logmsg(w, e, FATAL, m) /* class: WARN (application) - temporary error */ #define err_tmp(w, e, m) logmsg(w, e, WARN, m) #define err_tmp_plus(w, e, m) logmsg(w, e, WARN, m) /* class: facultative ('int'ernal definition */ #define err_int(w, e, c) logmsg(w, e, c, "") #define err_int_plus(w, e, c, m) logmsg(w, e, c, m) /* log messages */ /* #define log(w,m) logmsg(w,0,LOG,m) // obsoleted by */ #define log_who(w, m) logmsg(w, 0, LOG, m) #define log_anon(m) logmsg("", 0, LOG, m) #define log_cat(n) logmsg("", 0, CAT, m) /* build log message from multiple partial strings */ extern char *build_log_msg(const char *[]); #define B(...) build_log_msg((const char *[]){__VA_ARGS__, NULL}) // K/R sect. 7.3 #endif