Skip to content

Commit dda0256

Browse files
author
Alex Martsinovich
authored
Support structured logs in Sentry.LoggerHandler (#765)
1 parent 63d6b58 commit dda0256

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

lib/sentry/logger_handler.ex

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -341,18 +341,11 @@ defmodule Sentry.LoggerHandler do
341341
# "report" here is of type logger:report/0, which is a map or keyword list.
342342
defp log_unfiltered(%{msg: {:report, report}}, sentry_opts, %__MODULE__{} = config) do
343343
case Map.new(report) do
344-
%{report: %{reason: {exception, stacktrace}}}
344+
%{reason: {exception, stacktrace}}
345345
when is_exception(exception) and is_list(stacktrace) ->
346346
sentry_opts = Keyword.merge(sentry_opts, stacktrace: stacktrace, handled: false)
347347
capture(:exception, exception, sentry_opts, config)
348348

349-
%{report: %{reason: {reason, stacktrace}}} when is_list(stacktrace) ->
350-
sentry_opts = Keyword.put(sentry_opts, :stacktrace, stacktrace)
351-
capture(:message, "** (stop) " <> Exception.format_exit(reason), sentry_opts, config)
352-
353-
%{report: report_info} ->
354-
capture(:message, inspect(report_info), sentry_opts, config)
355-
356349
%{reason: {reason, stacktrace}} when is_list(stacktrace) ->
357350
sentry_opts = Keyword.put(sentry_opts, :stacktrace, stacktrace)
358351
capture(:message, "** (stop) " <> Exception.format_exit(reason), sentry_opts, config)
@@ -363,8 +356,8 @@ defmodule Sentry.LoggerHandler do
363356

364357
capture(:message, "** (stop) #{Exception.format_exit(reason)}", sentry_opts, config)
365358

366-
_other ->
367-
:ok
359+
_ ->
360+
capture(:message, inspect(report), sentry_opts, config)
368361
end
369362
end
370363

test/sentry/logger_handler_test.exs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,16 @@ defmodule Sentry.LoggerHandlerTest do
135135
refute_received {^ref, _event}, 100
136136
end
137137

138+
@tag handler_config: %{capture_log_messages: true}
139+
test "support structured logs", %{sender_ref: ref} do
140+
Logger.error(foo: "bar")
141+
142+
assert_receive {^ref, event}
143+
assert event.message.formatted == "[foo: \"bar\"]"
144+
145+
refute_received {^ref, _event}, 100
146+
end
147+
138148
@tag handler_config: %{capture_log_messages: true, level: :warning}
139149
test "respects the configured :level", %{sender_ref: ref} do
140150
Logger.log(:warning, "Testing warning")

0 commit comments

Comments
 (0)