Module Async_smtp.Mail_log

module Mail_fingerprint : sig ... end
module Flows : sig ... end
module Component : sig ... end
module Session_marker : sig ... end

Special tags that are used by the mailcoregrep utility in order to parse the log messages

module Message : sig ... end

Wrapper arround Log.Message.t that allows access to various standardised tag names.

type t = Async.Log.t
val with_flow_and_component : flows:Flows.t ‑> component:Component.t ‑> t ‑> t

with_flow_and_component - Add additional component and flow ids to log messages.

The "component" tag (if present) will be prepended or added if missing with component.

The given flows will be added as additional 'flow' tags (potentially adding a duplicate).

val adjust_log_levels : ?minimum_level:Async.Log.Level.t ‑> ?remap_info_to:Async.Log.Level.t ‑> ?remap_error_to:Async.Log.Level.t ‑> t ‑> t
val message : t ‑> level:Async.Log.Level.t ‑> Message.t Core.Lazy.t ‑> unit

message outputs the given message (if appropriate for the current log level).

Use Message.create, Message.debug or Message.of_error to create the Message.t. e.g. Mail_log.info log (lazy Message.create ~component:"world" "hello");

Special notes about the behaviour of these functions: * The message is dropped without forcing if level is less that Log.level t. * If the message has no loglevel set the level to match. * If t has information attached to it via with_flow_and_component, add that information to the message.

val message' : t ‑> level:Async.Log.Level.t ‑> Message.t ‑> unit
val info : t ‑> Message.t Core.Lazy.t ‑> unit

info is shorthand for message ~level:`Info.

val debug : t ‑> Message.t Core.Lazy.t ‑> unit

debug is shorthand for message ~level:`Debug.

val error : t ‑> Message.t Core.Lazy.t ‑> unit

error is shorthand for message ~level:`Error.