Module Spoc_core.Log

type level =
  1. | Debug
  2. | Info
  3. | Warn
  4. | Error

Log levels

type component =
  1. | Transfer
  2. | Kernel
  3. | Device
  4. | Memory
  5. | Execute
  6. | All

Components that can be logged

val log_level : level Stdlib.ref

Current log level (messages at or above this level are shown)

val enabled_components : (component, bool) Stdlib.Hashtbl.t

Enabled components

val enable : component -> unit

Enable a component

val disable : component -> unit

Disable a component

val init_from_env : unit -> unit

Enable from environment variable SAREK_DEBUG=transfer,kernel,... Use "*" or "all" to enable all components.

val set_level : level -> unit

Set log level

val is_enabled : component -> bool

Check if component is enabled

val level_to_int : level -> int

Level to int for comparison

val level_to_string : level -> string

Level to string

val component_to_string : component -> string

Component to string

val logf : level -> component -> ('a, Stdlib.out_channel, unit, unit) Stdlib.format4 -> 'a

Core logging function - printf style

val log : level -> component -> string -> unit

String-based logging (simpler, no format issues)

val debug : component -> string -> unit

Convenience functions - string based

val info : component -> string -> unit
val warn : component -> string -> unit
val error : component -> string -> unit
val debugf : component -> ('a, Stdlib.out_channel, unit, unit) Stdlib.format4 -> 'a

Convenience functions - printf style

val infof : component -> ('a, Stdlib.out_channel, unit, unit) Stdlib.format4 -> 'a
val warnf : component -> ('a, Stdlib.out_channel, unit, unit) Stdlib.format4 -> 'a
val errorf : component -> ('a, Stdlib.out_channel, unit, unit) Stdlib.format4 -> 'a