module Syslog: sig
.. end
Syslog Interface
Author(s): Markus Mottl <mmottl@janestreet.com>
Syslog is great for system daemons that log free-form human readable
status messages or other debugging output, but not so great for archiving
structured data. Access to read syslog's messages may also be restricted.
syslogd's logs are also not necessarily kept forever. For application level
logging consider the [Logger] module instead.
Options for opening syslog
type
opt =
| |
PID |
| |
CONS |
| |
ODELAY |
| |
NDELAY |
| |
NOWAIT |
| |
PERROR |
Types of syslog messages (facilities)
type
fac =
| |
KERN |
| |
USER |
| |
MAIL |
| |
DAEMON |
| |
AUTH |
| |
SYSLOG |
| |
LPR |
| |
NEWS |
| |
UUCP |
| |
CRON |
| |
AUTHPRIV |
| |
FTP |
| |
LOCAL0 |
| |
LOCAL1 |
| |
LOCAL2 |
| |
LOCAL3 |
| |
LOCAL4 |
| |
LOCAL5 |
| |
LOCAL6 |
| |
LOCAL7 |
Types of and functions for logging levels
type
lev =
| |
EMERG |
| |
ALERT |
| |
CRIT |
| |
ERR |
| |
WARNING |
| |
NOTICE |
| |
INFO |
| |
DEBUG |
val all_levs : lev array
all_levs
array of all logging levels sorted in ascending order.
val all_str_levs : string array
all_str_levs
array of all logging levels as strings sorted in
ascending order.
val compare_lev : lev -> lev -> int
compare_lev lev1 lev2
compares logging levels lev1
and lev2
.
val string_of_lev : lev -> string
string_of_lev lev
converts a level lev
to a string.
val lev_of_string : string -> lev
lev_of_string str
converts string str
to a level.
Raises Failure
if level does not exist.
val setlogmask : ?levs:lev list ->
?from_lev:lev -> ?to_lev:lev -> unit -> unit
setlogmask ?levs ?from_lev ?to_lev ()
sets the log mask. All levels
in levs
will be allowed, and additionally all ranging from
from_lev
to to_lev
(inclusive).
levs
: default = none
from_lev
: default = DEBUG
to_lev
: default = EMERG
Logging functions
val openlog : ?id:string -> ?opt:opt list -> ?fac:fac -> unit -> unit
openlog ?id ?opt ?fac ()
opens a connection to the system logger
(possibly delayed) using prefixed identifier
id
, options
opt
,
and faculty
fac
.
WARNING: this function leaks the id
argument, if provided. No way
around that if syslog is called in a multi-threaded environment!
Therefore it shouldn't be called too often. What for, anyway?
id
: default = Sys.argv.(0)
opt
: default = ODELAY
fac
: default =
USER
Calling openlog
before syslog
is optional. If you forget, syslog will
do it for you with the defaults.
val syslog : ?fac:fac -> ?lev:lev -> string -> unit
syslog ?fac ?lev str
logs message str
using syslog with faculty
fac
at level lev
.
fac
: default = as passed by openlog
lev
: default = INFO
val esyslog : ?fac:fac -> ?lev:lev -> string -> unit
esyslog ?fac ?lev str
same as
Syslog.syslog
, but also prints to
stderr
.
val syslogf : ?fac:fac ->
?lev:lev -> ('b, unit, string, unit) Pervasives.format4 -> 'b
syslog_printf ?fac ?lev fmt
same as
Syslog.syslog
, but allows
printf
-style specification of the message using
fmt
.
val esyslogf : ?fac:fac ->
?lev:lev -> ('b, unit, string, unit) Pervasives.format4 -> 'b
esyslog_printf ?fac ?lev fmt
same as Syslog.syslog_printf
,
but also prints to stderr
.
val closelog : unit -> unit
closelog ()
closes the connection to the syslog daemon.