package opentelemetry
Source file self_debug.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36type level = | Debug | Info | Warning | Error type logger = level -> (unit -> string) -> unit let logger : logger ref = ref (fun _ _ -> ()) let[@inline] log level f = !logger level f let string_of_level = function | Debug -> "debug" | Info -> "info" | Warning -> "warning" | Error -> "error" open struct let[@inline] int_of_level_ = function | Debug -> 0 | Info -> 1 | Warning -> 2 | Error -> 3 end let level_above ~min_level level : bool = int_of_level_ level >= int_of_level_ min_level let to_stderr ?(min_level = Warning) () : unit = logger := fun level mk_msg -> if level_above ~min_level level then ( let msg = mk_msg () in Printf.eprintf "[otel:%s] %s\n%!" (string_of_level level) msg )