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