@@ -89,7 +89,6 @@ defmodule Sentry.Client do
89
89
def send_event ( % Event { } = event , opts \\ [ ] ) do
90
90
result = Keyword . get ( opts , :result , Config . send_result ( ) )
91
91
sample_rate = Keyword . get ( opts , :sample_rate ) || Config . sample_rate ( )
92
- should_log = event . event_source != :logger
93
92
94
93
event = maybe_call_before_send_event ( event )
95
94
@@ -101,12 +100,12 @@ defmodule Sentry.Client do
101
100
:unsampled
102
101
103
102
{ % Event { } , true } ->
104
- encode_and_send ( event , result , should_log )
103
+ encode_and_send ( event , result )
105
104
end
106
105
end
107
106
108
- @ spec encode_and_send ( Event . t ( ) , result ( ) , boolean ( ) ) :: send_event_result ( )
109
- defp encode_and_send ( event , result , should_log ) do
107
+ @ spec encode_and_send ( Event . t ( ) , result ( ) ) :: send_event_result ( )
108
+ defp encode_and_send ( event , result ) do
110
109
result =
111
110
Sentry.Envelope . new ( )
112
111
|> Sentry.Envelope . add_event ( event )
@@ -123,9 +122,7 @@ defmodule Sentry.Client do
123
122
Sentry . put_last_event_id_and_source ( event . event_id , event . event_source )
124
123
end
125
124
126
- if should_log do
127
- maybe_log_result ( result )
128
- end
125
+ maybe_log_result ( result , event )
129
126
130
127
result
131
128
end
@@ -138,6 +135,7 @@ defmodule Sentry.Client do
138
135
Task.Supervisor . async_nolink ( Sentry.TaskSupervisor , fn ->
139
136
try_request ( endpoint , auth_headers , { event , body } , Config . send_max_attempts ( ) )
140
137
|> maybe_call_after_send_event ( event )
138
+ |> maybe_log_result ( event )
141
139
end ) }
142
140
143
141
{ :error , :invalid_dsn } ->
@@ -165,6 +163,7 @@ defmodule Sentry.Client do
165
163
Task.Supervisor . start_child ( Sentry.TaskSupervisor , fn ->
166
164
try_request ( endpoint , auth_headers , { event , body } , Config . send_max_attempts ( ) )
167
165
|> maybe_call_after_send_event ( event )
166
+ |> maybe_log_result ( event )
168
167
end )
169
168
170
169
{ :ok , "" }
@@ -269,7 +268,7 @@ defmodule Sentry.Client do
269
268
end
270
269
end
271
270
272
- @ spec maybe_call_after_send_event ( send_event_result , Event . t ( ) ) :: Event . t ( )
271
+ @ spec maybe_call_after_send_event ( send_event_result , Event . t ( ) ) :: send_event_result
273
272
def maybe_call_after_send_event ( result , event ) do
274
273
case Config . after_send_event ( ) do
275
274
function when is_function ( function , 2 ) ->
@@ -348,34 +347,39 @@ defmodule Sentry.Client do
348
347
end
349
348
end
350
349
351
- def maybe_log_result ( result ) do
352
- message =
353
- case result do
354
- { :error , :invalid_dsn } ->
355
- "Cannot send Sentry event because of invalid DSN"
350
+ @ spec maybe_log_result ( send_event_result , Event . t ( ) ) :: send_event_result
351
+ def maybe_log_result ( result , event ) do
352
+ if should_log? ( event ) do
353
+ message =
354
+ case result do
355
+ { :error , :invalid_dsn } ->
356
+ "Cannot send Sentry event because of invalid DSN"
356
357
357
- { :error , { :invalid_json , error } } ->
358
- "Unable to encode JSON Sentry error - #{ inspect ( error ) } "
358
+ { :error , { :invalid_json , error } } ->
359
+ "Unable to encode JSON Sentry error - #{ inspect ( error ) } "
359
360
360
- { :error , { :request_failure , last_error } } ->
361
- "Error in HTTP Request to Sentry - #{ inspect ( last_error ) } "
361
+ { :error , { :request_failure , last_error } } ->
362
+ "Error in HTTP Request to Sentry - #{ inspect ( last_error ) } "
362
363
363
- { :error , error } ->
364
- inspect ( error )
364
+ { :error , error } ->
365
+ inspect ( error )
365
366
366
- _ ->
367
- nil
368
- end
367
+ _ ->
368
+ nil
369
+ end
369
370
370
- if message != nil do
371
- Logger . log (
372
- Config . log_level ( ) ,
373
- fn ->
374
- [ "Failed to send Sentry event. " , message ]
375
- end ,
376
- domain: [ :sentry ]
377
- )
371
+ if message do
372
+ Logger . log (
373
+ Config . log_level ( ) ,
374
+ fn ->
375
+ [ "Failed to send Sentry event. " , message ]
376
+ end ,
377
+ domain: [ :sentry ]
378
+ )
379
+ end
378
380
end
381
+
382
+ result
379
383
end
380
384
381
385
@ spec authorization_headers ( String . t ( ) , String . t ( ) ) :: list ( { String . t ( ) , String . t ( ) } )
@@ -421,4 +425,8 @@ defmodule Sentry.Client do
421
425
defp sample_event? ( sample_rate ) do
422
426
:rand . uniform ( ) < sample_rate
423
427
end
428
+
429
+ defp should_log? ( % Event { event_source: event_source } ) do
430
+ event_source != :logger
431
+ end
424
432
end
0 commit comments