mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
29 lines
742 B
OCaml
29 lines
742 B
OCaml
(** Logs.
|
|
|
|
The logger is an object that can be used to emit logs.
|
|
|
|
See
|
|
{{:https://opentelemetry.io/docs/reference/specification/overview/#log-signal}
|
|
the spec} *)
|
|
|
|
open Opentelemetry_emitter
|
|
|
|
type t = {
|
|
emit: Log_record.t Emitter.t;
|
|
clock: Clock.t;
|
|
}
|
|
|
|
(** Dummy logger, always disabled *)
|
|
let dummy : t = { emit = Emitter.dummy; clock = Clock.ptime_clock }
|
|
|
|
let[@inline] enabled (self : t) : bool = Emitter.enabled self.emit
|
|
|
|
let[@inline] emit1 (self : t) (l : Log_record.t) = Emitter.emit self.emit [ l ]
|
|
|
|
let of_exporter (exp : Exporter.t) : t =
|
|
let emit =
|
|
Emitter.make ~signal_name:"logs"
|
|
~emit:(fun logs -> exp.Exporter.export (Any_signal_l.Logs logs))
|
|
()
|
|
in
|
|
{ emit; clock = Clock.Main.get () }
|