# Module Netlog

    module Netlog: sig .. end

Basic logging facility

The purpose of this module is to define a mutable logging function which ensures to be always pointing to a valid logging implementation. By default, the function prints the messages to stderr, prepended by a timestamp. In Netplex context, the implementation is changed so that the Netplex logger is used instead (see `Netplex_log`), and the `log` and `logf` functions below have the same effect as the counterparts in `Netplex_cenv` with the same name.

    type level = [ `Alert | `Crit | `Debug | `Emerg | `Err | `Info | `Notice | `Warning ]

The log levels (syslog-like)

    type logger = level -> string -> unit

A logging function takes a level, and the message

    val channel_logger : Pervasives.out_channel -> level -> logger

`channel_logger ch lev`: Prints all messages with a level of `lev` and higher to the channel `ch`. The output buffer is flushed after each message,

    val current_logger : logger Pervasives.ref

The variable containing the current logger function. Defaults to `channel_logger stderr `Debug` at program startup. Assign something else to this variable in order to change the log destination or the log level.

Note that the function `Netplex_main.run` modifies `current_logger` so log messages are forwarded to the Netplex logger. It is then the Netplex framework that determines log destination and level.

    val log : level -> string -> unit

Writes a log message

    val logf : level -> ('a, unit, string, unit) Pervasives.format4 -> 'a

Writes a log message like `printf`

    val level_weight : level -> int

A number correspondig to the level

    val level_of_string : string -> level

    val string_of_level : level -> string

Convert level names to strings and vice versa

    val level_names : string array

The level names indexed by weight

    module Debug: sig .. end