Changelog
View Sourcev0.3.0 — 2025-05-29
Add escape-hatch for custom key value formatting
OpenTelemetry libraries add some metadata to logger, but they add them as charlists (
otel_span_id
andotel_trace_id
) which ends up as a list of integers in the JSON log. For log correlation with some services (such as Datadog), they need these IDs to be in hex format, which means I need to be able to hook into the log formatting for these particular keys and values and format them.This adds a compile-config-based escape hatch for formatting values in the logger message.
v0.2.0 — 2024-09-23
Handle formatting improper lists
Improper lists can't be handled by standard iterators such as
Enum.map/2
, which made it impossible to convert them into a standard, loggable format.Check for implementation of
Jason.Encoder
for structsIf a struct has a custom implementation of
Jason.Encoder
we'll clean the internals but put everything back where we found it so the custom implementation could redact fields, for example.
v0.1.2 — 2022-01-12
Inspect non-atom/string keys
Instead of exploding on map keys in Jason if they were a list like
[:foo, "bar"]
or a map, etc., we'll allow strings or atoms as before, butinspect
otherwise.
v0.1.1 — 2022-12-06
Ensure full keyword list before encoding as map
This fixes situations where there are erlang-style option lists with both atoms and tuples, e.g.
[{Mod, []}, :enabled]
v0.1.0 — 2022-10-10
Initial release with a translator and formatter for structured JSON logs.