Up

module Lwt_log

: sig

Logging facility

This module provides functions to deal with logging. It extends [root:Lwt_log_core] with Unix features. It adds:

  • logging to the syslog daemon
  • logging to a channel (stderr, stdout, ...)
  • logging to a file
include module type of Lwt_log_core with type level = Lwt_log_core.level and type logger = Lwt_log_core.logger and type section = Lwt_log_core.section and type template = Lwt_log_core.template and module Section = Lwt_log_core.Section
#
val render : buffer:Buffer.t -> template:template -> section:section -> level:level -> message:string -> unit

Same as Lwt_log_core.render, except that the template may also contain the following variables:

  • date which will be replaced with the current date
  • milliseconds which will be replaced by the fractionnal part of the current unix time

For example:

  • "$(date) $(name)[$(pid)]: $(message)"
  • "$(date).$(milliseconds) $(name)[$(pid)]: $(message)"
  • "$(date): $(loc-file): $(loc-line): $(loc-column): $(message)"
#
type syslog_facility = [
| `Auth
| `Authpriv
| `Cron
| `Daemon
| `FTP
| `Kernel
| `Local0
| `Local1
| `Local2
| `Local3
| `Local4
| `Local5
| `Local6
| `Local7
| `LPR
| `Mail
| `News
| `Syslog
| `User
| `UUCP
| `NTP
| `Security
| `Console
]

Syslog facility. Look at the SYSLOG(3) man page for a description of syslog facilities

#
val syslog : ?template:template -> ?paths:string list -> facility:syslog_facility -> unit -> logger

syslog ?template ?paths ~facility () creates an logger which send message to the system logger.

paths is a list of path to try for the syslogd socket. It default to ["/dev/log"; "/var/run/log"].
template defaults to "$(date) $(name)[$(pid)]: $(section): $(message)"
#
val file : ?template:template -> ?mode:[
| `Truncate
| `Append
] -> ?perm:Unix.file_perm -> file_name:string -> unit -> logger Lwt.t

desf_file ?template ?mode ?perm ~file_name () creates an logger which will write messages to file_name.

  • if mode = `Truncate then the file is truncated and previous contents will be lost.
  • if mode = `Append, new messages will be appended at the end of the file
mode defaults to `Append
template defaults to "$(date): $(section): $(message)"
#
val channel : ?template:template -> close_mode:[
| `Close
| `Keep
] -> channel:Lwt_io.output_channel -> unit -> logger

channel ?template ~close_mode ~channel () creates a logger from a channel.

If close_mode = `Close then channel is closed when the logger is closed, otherwise it is left open.

template defaults to "$(name): $(section): $(message)"
end