Current section

Files

Jump to
opentelemetry_logger_metadata src opentelemetry_logger_metadata.erl
Raw

src/opentelemetry_logger_metadata.erl

-module(opentelemetry_logger_metadata).
-export([setup/0,
filter/2]).
-include_lib("opentelemetry_api/include/opentelemetry.hrl").
-spec setup() -> ok.
setup() ->
logger:add_primary_filter(opentelemetry_logger_metadata, {fun filter/2, []}),
ok.
filter(LogEvent, _Config) ->
case otel_tracer:current_span_ctx() of
undefined ->
ignore;
SpanCtx ->
HexTraceId = otel_span:hex_trace_id(SpanCtx),
HexSpanId = otel_span:hex_span_id(SpanCtx),
#{meta := Meta} = LogEvent,
MetaWithTraceInformation = Meta#{trace_id => HexTraceId, span_id => HexSpanId},
LogEvent#{meta => MetaWithTraceInformation}
end.