(** Logs. See {{:https://opentelemetry.io/docs/reference/specification/overview/#log-signal} the spec} *) open Common_ open Proto.Logs type t = Proto.Logs.log_record (** Severity level of a log event *) type severity = Proto.Logs.severity_number = | Severity_number_unspecified | Severity_number_trace | Severity_number_trace2 | Severity_number_trace3 | Severity_number_trace4 | Severity_number_debug | Severity_number_debug2 | Severity_number_debug3 | Severity_number_debug4 | Severity_number_info | Severity_number_info2 | Severity_number_info3 | Severity_number_info4 | Severity_number_warn | Severity_number_warn2 | Severity_number_warn3 | Severity_number_warn4 | Severity_number_error | Severity_number_error2 | Severity_number_error3 | Severity_number_error4 | Severity_number_fatal | Severity_number_fatal2 | Severity_number_fatal3 | Severity_number_fatal4 let pp_severity = pp_severity_number type flags = Proto.Logs.log_record_flags = | Log_record_flags_do_not_use | Log_record_flags_trace_flags_mask let pp_flags = Proto.Logs.pp_log_record_flags (** Make a single log entry *) let make ?time ?(observed_time_unix_nano = Timestamp_ns.now_unix_ns ()) ?severity ?log_level ?flags ?trace_id ?span_id (body : Value.t) : t = let time_unix_nano = match time with | None -> observed_time_unix_nano | Some t -> t in let trace_id = Option.map Trace_id.to_bytes trace_id in let span_id = Option.map Span_id.to_bytes span_id in let body = Value.conv body in make_log_record ~time_unix_nano ~observed_time_unix_nano ?severity_number:severity ?severity_text:log_level ?flags ?trace_id ?span_id ?body () (** Make a log entry whose body is a string *) let make_str ?time ?observed_time_unix_nano ?severity ?log_level ?flags ?trace_id ?span_id (body : string) : t = make ?time ?observed_time_unix_nano ?severity ?log_level ?flags ?trace_id ?span_id (`String body) (** Make a log entry with format *) let make_strf ?time ?observed_time_unix_nano ?severity ?log_level ?flags ?trace_id ?span_id fmt = Format.kasprintf (fun bod -> make_str ?time ?observed_time_unix_nano ?severity ?log_level ?flags ?trace_id ?span_id bod) fmt