qlibs:
Section: Misc. Reference Manual Pages (logmsg)
Updated: 3
Index
Return to Main Contents
NAME
logmsg - handle system errors and application log messages
SYNTAX
#include "logmsg.h"
int logmsg(const char *who, int ecode, unsigned int classs, char *msg)
err_sys(w,e) logmsg(w,e,FATAL,"")
err_sys_plus(w,e,m) logmsg(w,e,FATAL,m)
err_tmp(w,e) logmsg(w,e,WARN,"")
err_tmp_plus(w,e,m) logmsg(w,e,WARN,m)
err_int(w,e,c) logmsg(w,e,c,"")
err_int_plus(w,e,c,m) logmsg(w,e,c,m)
log_who(w,m) logmsg(w,0,LOG,m)
log_anon(m) logmsg("",0,LOG,m)
DESCRIPTION
logmsg prints error, warning, or info/logging messages to stderr
and potentially terminates the calling program, depending on the class given.
who is the name of the program, ecode is an error code,
class determines the behavior upon call and msg is the logging message.
Read "error.h" to learn more about related constants.
ECODE
ecode is the error code and subject to be displayed in the log file and
potentially used upon exit if the class equals ERROR, FATAL, or DROP.
To avoid conflicts with syscall error codes, appplication defined error codes should be negative.
The values -15, -100 and -111 are reserved for backward compatibility.
CLASS
The class parameter indicates how the application handles exceptions and displays the
log message.
- o
-
LOG, INFO, ALERT, WARN - display message and continue operation
- o
-
DROP - display warning message and continue while returning to the calling program
- o
-
USAGE, SYNTAX, FATAL, ERROR
- display error message and exit application with error code
INFO, ALERT, WARN, DROP, USAGE, and FATAL as well
as ERROR display the respective class string like warning: in the log message,
while LOG shows the log message only.
The class FATAL should be used for system error codes only, rather ERROR
and WARN shall be set in conjunction with an application error/warning.
MESSAGE
If the custom message msg is given, it will be printed additionally.
FORMAT
The log message format consists of the tokens
who: (ecode) msg : msg.
ecode
is displayed only for classes FATAL, ERROR, or DROP.
msg
is the system's explanation according to the variable
errno
if provided.
NOTES
logmsg.c
uses
errstr.c
routines.
Error codes and classes are defined in
error.h
and included by
logmsg.h.
EXIT CODE
logmsg exits ecode for classes ERROR, FATAL, SYNTAX,
and USAGE terminating the application.
HISTORY
Dan Bernstein used sets of strerr_dieY*() and strerr_warnY() messages
which explicitely determine the message and behavior class.
Other classes were occasionally defined on demand, such als usage().
Kai Peter introduced the errmsg facility in his qlibs
including a syslog compliant severity as second parameter.
EXAMPLES
The macro definitions uses w for the calling program,
e for error code, c for class, and m for message.
#include "logmsg.h"
#define WHO "my_prog"
err_sys(WHO,errno);
err_sys_plus(WHO,-111,"additional message");
err_tmp("",-100);
err_tmp_plus("",errno,"additional message");
log_who(WHO,"message");
log_anon() is like log_who() but doesn't print the caller name.
An user defined message s can be build from multiple arguments by using the B
(build) macro:
err_sys_plus((errno),B("unable to run: ",*argv));
SEE ALSO
syslog(3)
Index
- NAME
-
- SYNTAX
-
- DESCRIPTION
-
- ECODE
-
- CLASS
-
- MESSAGE
-
- FORMAT
-
- NOTES
-
- EXIT CODE
-
- HISTORY
-
- EXAMPLES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 14:55:39 GMT, December 15, 2024