@c
@c COPYRIGHT (c) 1988-1998.
@c On-Line Applications Research Corporation (OAR).
@c All rights reserved.
@c
@c $Id$
@c
@chapter Event Logging Manager
@section Introduction
The
event logging manager is ...
The directives provided by the event logging manager are:
@itemize @bullet
@item @code{log_write} - Write to the Log
@item @code{log_open} - Open a log file
@item @code{log_read} - Read from the system Log
@item @code{log_notify} - Notify Process of writes to the system log
@item @code{log_close} - Close log descriptor
@item @code{log_seek} - Reposition log file offset
@item @code{log_severity_before} - Compare event record severities
@item @code{log_facilityemptyset} - Manipulate log facility sets
@item @code{log_facilityfillset} - Manipulate log facility sets
@item @code{log_facilityaddset} - Manipulate log facility sets
@item @code{log_facilitydelset} - Manipulate log facility sets
@item @code{log_facilityismember} - Manipulate log facility sets
@end itemize
@section Background
@section Operations
@section Directives
This section details the event logging manager's directives.
A subsection is dedicated to each of this manager's directives
and describes the calling sequence, related constants, usage,
and status codes.
@page
@subsection log_write - Write to the Log
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_write(
const log_facility_t facility,
const int event_id,
const log_severity_t severity,
const void *buf,
const size_t len
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facility argument is not a valid log_facility.
@item EINVAL
The severity argument exceeds {LOG_SEVERITY_MAX}
@item EINVAL
The len argument exceeds {LOG_ENTRY_MAXLEN}
@item ENOSPC
The log file has run out of space on the device.
@item ENOSYS
The function log_write() is not supported by this implementation.
@item EPERM
The caller does not have appropriate permission for writing to
the given facility.
@item EIO
An I/O error occurred in writing to the system event log.
@end table
@subheading DESCRIPTION:
The @code{log_write} function writes an event record, consisting
of event attributes, and the data identified by the @code{buf}
argument, to the system log.
@subheading NOTES:
@page
@subsection log_open - Open a log file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_open(
const logd_t *logdes,
const char *path,
const log_query_t *query
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EACCES
Search permission is denied on a component of the path prefix,
or the log file exists and read permission is denied.
@item EINTR
A signal interrupted the call to log_open().
@item EINVAL
The log_facility field of the query argument is not a valid
facility set.
@item EINVAL
The log_severity field of the query argument exceeds
{LOG_SEVERITY_MAX}.
@item EINVAL
The path argument referred to a file that was not a log file.
@item EMFILE
Too many log file descriptors are currently in use by this
process.
@item ENAMETOOLONG
The length of the path string exceeds {PATH_MAX}, or a pathname
component is longer than {NAME_MAX} while {_POSIX_NO_TRUNC} is
in effect.
@item ENFILE
Too many files are currently open in the system.
@item ENOENT
The file specified by the path argument does not exist.
@item ENOTDIR
A component of the path prefix is not a directory.
@item ENOSYS
The function log_open() is not supported by this implementation.
@end table
@subheading DESCRIPTION:
The @code{log_open} function establishes the connection between a
log file and a log file descriptor.
@subheading NOTES:
@page
@subsection log_read - Read from the system Log
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_read(
const logd_t logdes,
struct log_entry *entry,
void *log_buf,
const size_t log_len,
const size_t *log_sizeread
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EBADF
The logdes argument is not a valid log file descriptor.
@item EBUSY
No data available. The open log file descriptor references
the current system log. and there are no unread event records
remaining.
@item EINTR
A signal interrupted the call to log_read().
@item ENOSYS
The function log_read() is not supported by this implementation.
@item EIO
An I/O error occurred in reading from the event log.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_notify - Notify Process of writes to the system log.
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_notify(
const logd_t logdes,
const struct sigevent *notification
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EBADF
The logdes arfument is not a valid log file descriptor.
@item EINVAL
The notification argument specifies an invalid signal.
@item EINVAL
The process has requested a notify on a log that will not be
written to.
@item ENOSY
The function log_notify() is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_close - Close log descriptor
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_close(
const logd_t logdes
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EBADF
The logdes argument is not a valid log file descriptor.
@item ENOSYS
The function log_close() is not supported by t his implementation.
@end table
@subheading DESCRIPTION:
The @code{log_close} function deallocates the open log file
descriptor indicated by @code{log_des}.
@subheading NOTES:
@page
@subsection log_seek - Reposition log file offset
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_seek(
const logd_t logdes,
log_recid_t log_recid
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EBADF
The logdes argument is not a valid log file descriptor.
@item EINTR
The log_seek() function was interrupted by a signal.
@item EINVAL
The log_recid argument is not a valid record id.
@item ENOSYS
The function log_seek() is not supported by this implementation.
@end table
@subheading DESCRIPTION:
The @code{log_seek} function shall set the log file offset of the open
log descriptioin associated with the @code{logdes} log file descriptor to the
event record in the log file identified by @code{log_recid}.
@subheading NOTES:
@page
@subsection log_severity_before - Compare event record severities
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_severity_before(
log_severity_t s1,
log_severity_t s2
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The value of either s1 or s2 exceeds {LOG_SEVERITY_MAX}.
@item ENOSYS
The function log_severity_before() is not supported by this
implementation.
@end table
@subheading DESCRIPTION:
The @code{log_severity_before} function shall compare the severity order
of the @code{s1} and @code{s2} arguments.
@subheading NOTES:
@page
@subsection log_facilityemptyset - Manipulate log facility sets
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_facilityemptyset(
log_facility_set_t *set
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facilityno argument is not a valid facility.
@item ENOSYS
The function is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_facilityfillset - Manipulate log facility sets
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_facilityfillset(
log_facility_set_t *set
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facilityno argument is not a valid facility.
@item ENOSYS
The function is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_facilityaddset - Manipulate log facility sets
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_facilityaddset(
log_facility_set_t *set,
log_facility_t facilityno
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facilityno argument is not a valid facility.
@item ENOSYS
The function is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_facilitydelset - Manipulate log facility sets
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_facilitydelset(
log_facility_set_t *set,
log_facility_t facilityno
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facilityno argument is not a valid facility.
@item ENOSYS
The function is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES:
@page
@subsection log_facilityismember - Manipulate log facility sets
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int log_facilityismember(
const log_facility_set_t *set,
log_facility_t facilityno,
const int *member
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item EINVAL
The facilityno argument is not a valid facility.
@item ENOSYS
The function is not supported by this implementation.
@end table
@subheading DESCRIPTION:
@subheading NOTES: