NAME
kutil_err,
kutil_errx, kutil_info,
kutil_log, kutil_logx,
kutil_verr, kutil_verrx,
kutil_vinfo, kutil_vlog,
kutil_vlogx, kutil_vwarn,
kutil_vwarnx, kutil_warn,
kutil_warnx —
format log messages
LIBRARY
library “libkcgi”
SYNOPSIS
#include
<sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>
void
kutil_err(const struct kreq *r,
const char *ident, const char
*fmt, ...);
void
kutil_errx(const struct kreq *r,
const char *ident, const char
*fmt, ...);
void
kutil_info(const struct kreq *r,
const char *ident, const char
*fmt, ...);
void
kutil_log(const struct kreq *r,
const char *level, const char
*ident, const char *fmt,
...);
void
kutil_logx(const struct kreq *r,
const char *level, const char
*ident, const char *fmt,
...);
void
kutil_verr(const struct kreq *r,
const char *ident, const char
*fmt, va_list ap);
void
kutil_verrx(const struct kreq
*r, const char *ident, const
char *fmt, va_list ap);
void
kutil_vinfo(const struct kreq
*r, const char *ident, const
char *fmt, va_list ap);
void
kutil_vlog(const struct kreq *r,
const char *level, const char
*ident, const char *fmt, va_list
ap);
void
kutil_vlogx(const struct kreq
*r, const char *level, const
char *ident, const char *fmt,
va_list ap);
void
kutil_vwarn(const struct kreq
*r, const char *ident, const
char *fmt, va_list ap);
void
kutil_vwarnx(const struct kreq
*r, const char *ident, const
char *fmt, va_list ap);
void
kutil_warn(const struct kreq *r,
const char *ident, const char
*fmt, ...);
void
kutil_warnx(const struct kreq
*r, const char *ident, const
char *fmt, ...);
DESCRIPTION
These functions consistently format and output messages on standard error. See kutil_openlog(3) for configuring an alternative log destination.
These functions accept the following variables:
- const struct kreq *r
- Active request handle opened with khttp_parse(3). If
NULL, the remote host field will be omitted. - const char *level
- A human-readable log level. If
NULL, no level is printed. For functions not accepting this argument, theINFO,WARN, andERRORvalues are used for the informational, warning, and error functions, respectively. - const char *ident
- The client identity of the caller. This adheres to the common CGI practise
of connecting a message to a logged-in user. If
NULL, no ident is printed. - const char *fmt
- The printf(3) style
format string for the variable argument or argument list following. This
formats the log message. If
NULL, no message is printed.
The
kutil_err(),
kutil_errx(),
kutil_verr(), and
kutil_verrx()
functions exit with EXIT_FAILURE. They never
return.
Output format
The log messages are filtered on output: non-printable (see isprint(3)) characters are replaced with “?” and space characters (\a, \b, \f, \n, \r, \t, \v, \0) are shown as literal escape characters.
The
kutil_err(),
kutil_verr(),
kutil_log(),
kutil_vlog(),
kutil_vwarn(),
and
kutil_warn()
functions print out the current errno following the
log message.
The output format is as follows, with a trailing newline:
addr ident [date] level
msgaddr ident [date] level msg:
errmsgHere, "addr" is the remote host as passed to the CGI
script or "-" if r is
NULL; and where "ident" "level"
and "msg", if NULL, will be rendered as
"-". The date is formatted as an HTTP date (RFC 822) in GMT.
AUTHORS
These functions were written by Kristaps Dzonsons <kristaps@bsd.lv>.