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.
typelevel =[ `Alert | `Crit | `Debug | `Emerg | `Err | `Info | `Notice | `Warning ]
The log levels (syslog-like)
typelogger =level -> string -> unit
A logging function takes a level, and the message
val channel_logger : Stdlib.out_channel -> level -> loggerchannel_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 Stdlib.refThe 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 -> unitWrites a log message
val logf : level -> ('a, unit, string, unit) Stdlib.format4 -> 'aWrites a log message like printf
val level_weight : level -> intA number correspondig to the level
val level_of_string : string -> level
val string_of_level : level -> stringConvert level names to strings and vice versa
val level_names : string arrayThe level names indexed by weight
typeformat =[ `ISO | `Std ]
val format_timestamp : format -> int -> float * int -> stringformat_timestamp fmt digits (seconds,nanos): Formats the timestamp
      (seconds,nanos) and returns the string. Pass in digits the number
      of digits for fractional seconds.
`Std: This is the "%c" format of Netdate`ISO: ISO-8601 formatval current_formatter : (float * int -> string) Stdlib.refThe current timestamp formatter
Example: Change the format of timestamps to ISO with a precision of milliseconds:
        Netlog.current_formatter := Netlog.format_timestamp `ISO 3
      module Debug:sig..end