From 863cea15fadcd96c5a24a97569940308c95046fd Mon Sep 17 00:00:00 2001 From: Peter Taoussanis Date: Mon, 5 Aug 2024 13:25:44 +0200 Subject: [PATCH] [fix] [#11] OpenTelemetry handler: signals without message fail --- src/taoensso/telemere/open_telemetry.clj | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/taoensso/telemere/open_telemetry.clj b/src/taoensso/telemere/open_telemetry.clj index e34c13f..f7bcb69 100644 --- a/src/taoensso/telemere/open_telemetry.clj +++ b/src/taoensso/telemere/open_telemetry.clj @@ -219,11 +219,17 @@ severity (level->severity level) msg (force msg_) attrs-map (signal->attrs-map attrs-signal-key signal) - attrs (as-attrs attrs-map)] + attrs (as-attrs attrs-map) - (.emit - (doto (.logRecordBuilder logger) - (.setTimestamp inst) - (.setSeverity severity) - (.setBody msg) - (.setAllAttributes attrs))))))))) + b (.logRecordBuilder logger)] + + (.setTimestamp b inst) + (.setSeverity b severity) + (.setAllAttributes b attrs) + (when-let [body + (or msg + (when-let [error (get signal :error)] + (str (enc/ex-type error) ": " (enc/ex-message error))))] + (.setBody b body)) + + (.emit b)))))))