Module Lwt_log
module Lwt_log : sig..end
Logging functions
This module provides logging functions. It is actually a thin extension of Lwt_log_core, adding logging destinations that are only available on Unix and Windows (such as files, standard output, and the system log). Being a thin extension, most of the functions in this module are actually the ones in Lwt_log_core. They are not repeated on this page, however, so please read both Lwt_log_core and this page for a complete understanding.
Here is a simple, self-contained usage example:
let () =
Lwt_log.default :=
Lwt_log.channel
~template:"$(date).$(milliseconds) [$(level)] $(message)"
~close_mode:`Keep
~channel:Lwt_io.stdout
();
Lwt_log.add_rule "*" Lwt_log.Info;
Lwt_main.run begin
Lwt_log.info "Hello world!"
end
(* ocamlfind opt -linkpkg -package lwt.unix log_example.ml && ./a.out *)
As an alternative to this module, we suggest trying Logs_lwt from the logs library.
include Lwt_log_core
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 local date and time,
- milliseconds, which will be replaced by the fractional part of the current Unix time, to millisecond accuracy.
For example:
- "$(date) $(name)[$(pid)]: $(message)"
- "$(date).$(milliseconds) $(name)[$(pid)]: $(message)"
- "$(date): $(loc-file): $(loc-line): $(loc-column): $(message)"
type syslog_facility =
[ `Auth
| `Authpriv
| `Console
| `Cron
| `Daemon
| `FTP
| `Kernel
| `LPR
| `Local0
| `Local1
| `Local2
| `Local3
| `Local4
| `Local5
| `Local6
| `Local7
| `NTP
| `News
| `Security
| `Syslog
| `UUCP
| `User ]
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.
template : defaults to "$(date) $(name)[$(pid)]: $(section): $(message)"
paths : is a list of path to try for the syslogd socket. It default to ["/dev/log"; "/var/run/log"].
val file :
?template:template ->
?mode:[ `Append | `Truncate ] ->
?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
template : defaults to "$(date): $(section): $(message)"
mode : defaults to `Append
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)"