Module Syslog

Send log messages via the Unix Syslog interface.

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 Core_extended.Std.Logger instead.

module Open_option : sig ... end
module Facility : sig ... end

Types of messages

module Level : sig ... end
val setlogmask : ?⁠allowed_levels:Level.t list -> ?⁠from_level:Level.t -> ?⁠to_level:Level.t -> unit -> unit

All levels in allowed_levels will be allowed, and additionally all ranging from from_level to to_level (inclusive).

Logging functions

val openlog : ?⁠id:string -> ?⁠options:Open_option.t list -> ?⁠facility:Facility.t -> unit -> unit

openlog ~id ~options ~facility () opens a connection to the system logger (possibly delayed) using prefixed identifier id, options, and facility.

WARNING: this function leaks the id argument, if provided. There is no way around that if syslog is called in a multi-threaded environment! Therefore it shouldn't be called too often. What for, anyway?

Calling openlog before syslog is optional. If you forget, syslog will do it for you with the defaults.

val syslog : ?⁠facility:Facility.t -> ?⁠level:Level.t -> string -> unit

syslog ~facility ~level message logs message using syslog with facility at level.

val syslogf : ?⁠facility:Facility.t -> ?⁠level:Level.t -> ('a, unit, string, unit) Syslog__.Import.format4 -> 'a

syslog_printf acts like syslog, but allows printf-style specification of the message.

val closelog : unit -> unit

closelog () closes the connection to the syslog daemon.