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 Level : sig ... end

Augment Log.Level with `Error_no_monitor which are errors that are not reported by the RPC Monitor.errors. It should be thought of as having severity between that of `Info and `Error

module Message : sig ... end

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

type t = Async.Log.t
val error_no_monitor_tag : string * string

A tag that can be included on `Error messages when using Async.Log directly to prevent reporting to the smtp monitor

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:Level.t -> ?⁠remap_info_to:Level.t -> ?⁠remap_error_no_monitor_to:Level.t -> ?⁠remap_error_to:Level.t -> t -> t
val message : t -> level: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: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 : ?⁠dont_send_to_monitor:unit -> t -> Message.t Core.Lazy.t -> unit

error is shorthand for message ~level:`Error_no_monitor or message ~level:`Error

module Stable : sig ... end