.TH SYSFATAL 3
.SH NAME
syslog, sysfatal \- system error messages
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.B
void syslog(int cons, char *logname, char *fmt, ...)
.PP
.B
void sysfatal(char *fmt, ...)
.SH DESCRIPTION
.I Sysfatal
prints to standard error the name of the running program,
a colon and a space, 
the message described by the
.IR print (3)
format string
.I fmt
and subsequent arguments, and a newline.
It then calls
.IR exits (3)
with the formatted message as argument.
The program's name is the value of
.BR argv0 ,
which will be set if the program uses the
.IR arg (3)
interface to process its arguments.
If
.B argv0
is null, it is ignored and the following colon and space are suppressed.
.PP
.I Syslog
logs messages in the file named by
.I logname
in the directory
.B \*9/log ;
the file must already exist and is opened append-only.
.I Logname
must contain no slashes.
The message is a line with several fields:
the name of the machine writing the message;
the date and time;
the message specified by the 
.IR print (3)
format
.I fmt
and any following arguments;
and a final newline.
If
.I cons
is set or the log file cannot be opened, the message is also printed
on the system console.
.I Syslog
can be used safely in multi-threaded programs.
.SH SOURCE
.B \*9/src/lib9/sysfatal.c
.br
.B \*9/src/lib9/syslog.c
.SH "SEE ALSO"
.IR intro (3),
.IR errstr (3),
the
.B %r
format in
.IR print (3)
