Module Mavryk_event_logging.Internal_event

This module defines a "structured event logging framework."

Internal-Event streams are like traditional logs but they have a proper Data_encoding format in order to be processed by software.

The module defines "Sinks" SINK as the receptacle for structured events: pluggable modules which can absorb (i.e. display, store, forward) the events emitted within the code-base.

Events Definitions and Registration

type level =
  1. | Debug
  2. | Info
  3. | Notice
  4. | Warning
  5. | Error
  6. | Fatal

The relative importance of a particular event (compatible with traditional logging systems, cf. Lwt_log_core.level).

module Level : sig ... end

Module to manipulate values of type level.

module Section : sig ... end

Sections are a simple way of classifying events at the time of their emission.

val get_registered_sections : unit -> string Mavryk_error_monad.TzLwtreslib.Seq.t

All the section that has been registered. Currently, sections are registered by the `Simple`.

val register_section : Section.t -> unit
module type EVENT_DEFINITION = sig ... end

Parameters defining an inspectable type of events.

module type EVENT = sig ... end

Events created with Make provide the EVENT API.

module Make (E : EVENT_DEFINITION) : EVENT with type t = E.t

Build an event from an event-definition.

type 'a event_definition = (module EVENT_DEFINITION with type t = 'a)

event_definition wraps EVENT_DEFINITION as a first class module.

module Generic : sig ... end

Helper functions to manipulate all kinds of events in a generic way.

module All_definitions : sig ... end

Access to all the event definitions registered with Make.

module Simple : sig ... end

Simple Event Definition

Sink Definitions and Registration

module type SINK = sig ... end

An implementation of SINK is responsible for handling/storing events, for instance, a sink could be output to a file, to a database, or a simple "memory-less" forwarding mechanism.

type 'a sink_definition = (module SINK with type t = 'a)

sink_definition wraps SINK_DEFINITION as a first class module.

module All_sinks : sig ... end

Use All_sinks.register to add a new inactive sink, then All_sinks.activate to make it handle events.

Common Event Definitions

module Lwt_worker_logger : sig ... end

The worker logger is meant for use with Lwt_utils.worker.