VSYSLOG(3C) Standard C Library Functions VSYSLOG(3C)
vsyslog - log message with a stdarg argument list
#include <syslog.h>
#include <stdarg.h>
void vsyslog(int priority, const char *message, va_list ap);
The vsyslog() function is identical to syslog(3C), except that it is
called with an argument list as defined by <stdarg.h> rather than
with a variable number of arguments.
The following example demonstrates the use of vsyslog() in writing an
error routine.
#include <syslog.h>
#include <stdarg.h>
/*
* error should be called like:
* error(pri, function_name, format, arg1, arg2...);
*/
void
error(int pri, char *function_name, char *format, ...)
{
va_list args;
va_start(args, format);
/* log name of function causing error */
(void) syslog(pri, "ERROR in %s.", function_name);
/* log remainder of message */
(void) vsyslog(pri, format, args);
va_end(args);
(void) abort( );
}
main()
{
error(LOG_ERR, "main", "process %d is dying", getpid());
}
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | Safe |
+---------------+-----------------+
syslog(3C), attributes(7)
August 30, 2006 VSYSLOG(3C)
NAME
vsyslog - log message with a stdarg argument list
SYNOPSIS
#include <syslog.h>
#include <stdarg.h>
void vsyslog(int priority, const char *message, va_list ap);
DESCRIPTION
The vsyslog() function is identical to syslog(3C), except that it is
called with an argument list as defined by <stdarg.h> rather than
with a variable number of arguments.
EXAMPLES
Example 1: Use vsyslog() to write an error routine.
The following example demonstrates the use of vsyslog() in writing an
error routine.
#include <syslog.h>
#include <stdarg.h>
/*
* error should be called like:
* error(pri, function_name, format, arg1, arg2...);
*/
void
error(int pri, char *function_name, char *format, ...)
{
va_list args;
va_start(args, format);
/* log name of function causing error */
(void) syslog(pri, "ERROR in %s.", function_name);
/* log remainder of message */
(void) vsyslog(pri, format, args);
va_end(args);
(void) abort( );
}
main()
{
error(LOG_ERR, "main", "process %d is dying", getpid());
}
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | Safe |
+---------------+-----------------+
SEE ALSO
syslog(3C), attributes(7)
August 30, 2006 VSYSLOG(3C)