Skip to content

Commit bb19d62

Browse files
Fix: Use logger set on SentryOptions in GsonSerializer (getsentry#1312)
Fixes getsentry#1308
1 parent 6611960 commit bb19d62

27 files changed

+179
-153
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Feat: Add an overload for `startTransaction` that sets the created transaction to the Scope #1313
44
* Ref: Separate user facing and protocol classes in the Performance feature (#1304)
55
* Feat: Set SDK version on Transactions (#1307)
6+
* Fix: Use logger set on SentryOptions in GsonSerializer (#1308)
67

78
# 4.3.0
89

sentry-android-ndk/src/test/java/io/sentry/android/ndk/NdkScopeObserverTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class NdkScopeObserverTest {
1616
private class Fixture {
1717
val nativeScope = mock<INativeScope>()
1818
val options = SentryOptions().apply {
19-
setSerializer(GsonSerializer(mock(), mock()))
19+
setSerializer(GsonSerializer(mock()))
2020
}
2121

2222
fun getSut(): NdkScopeObserver {

sentry-test-support/src/main/kotlin/io/sentry/test/assertions.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package io.sentry.test
22

33
import com.nhaarman.mockitokotlin2.check
44
import io.sentry.GsonSerializer
5-
import io.sentry.NoOpLogger
65
import io.sentry.SentryEnvelope
76
import io.sentry.SentryEvent
87
import io.sentry.SentryOptions
@@ -12,7 +11,7 @@ import io.sentry.SentryOptions
1211
*/
1312
inline fun checkEvent(noinline predicate: (SentryEvent) -> Unit): SentryEnvelope {
1413
val options = SentryOptions().apply {
15-
setSerializer(GsonSerializer(NoOpLogger.getInstance(), envelopeReader))
14+
setSerializer(GsonSerializer(SentryOptions()))
1615
}
1716
return check {
1817
val event = it.items.first().getEvent(options.serializer)!!

sentry/api/sentry.api

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public abstract interface class io/sentry/EventProcessor {
9090
}
9191

9292
public final class io/sentry/GsonSerializer : io/sentry/ISerializer {
93-
public fun <init> (Lio/sentry/ILogger;Lio/sentry/IEnvelopeReader;)V
93+
public fun <init> (Lio/sentry/SentryOptions;)V
9494
public fun deserialize (Ljava/io/Reader;Ljava/lang/Class;)Ljava/lang/Object;
9595
public fun deserializeEnvelope (Ljava/io/InputStream;)Lio/sentry/SentryEnvelope;
9696
public fun serialize (Lio/sentry/SentryEnvelope;Ljava/io/OutputStream;)V
@@ -924,7 +924,7 @@ public final class io/sentry/Session$State : java/lang/Enum {
924924
}
925925

926926
public final class io/sentry/SessionAdapter : com/google/gson/TypeAdapter {
927-
public fun <init> (Lio/sentry/ILogger;)V
927+
public fun <init> (Lio/sentry/SentryOptions;)V
928928
public fun read (Lcom/google/gson/stream/JsonReader;)Lio/sentry/Session;
929929
public synthetic fun read (Lcom/google/gson/stream/JsonReader;)Ljava/lang/Object;
930930
public fun write (Lcom/google/gson/stream/JsonWriter;Lio/sentry/Session;)V
@@ -1067,25 +1067,25 @@ public final class io/sentry/adapters/CollectionAdapter : com/google/gson/JsonSe
10671067
}
10681068

10691069
public final class io/sentry/adapters/ContextsDeserializerAdapter : com/google/gson/JsonDeserializer {
1070-
public fun <init> (Lio/sentry/ILogger;)V
1070+
public fun <init> (Lio/sentry/SentryOptions;)V
10711071
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/protocol/Contexts;
10721072
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
10731073
}
10741074

10751075
public final class io/sentry/adapters/ContextsSerializerAdapter : com/google/gson/JsonSerializer {
1076-
public fun <init> (Lio/sentry/ILogger;)V
1076+
public fun <init> (Lio/sentry/SentryOptions;)V
10771077
public fun serialize (Lio/sentry/protocol/Contexts;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
10781078
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
10791079
}
10801080

10811081
public final class io/sentry/adapters/DateDeserializerAdapter : com/google/gson/JsonDeserializer {
1082-
public fun <init> (Lio/sentry/ILogger;)V
1082+
public fun <init> (Lio/sentry/SentryOptions;)V
10831083
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
10841084
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/util/Date;
10851085
}
10861086

10871087
public final class io/sentry/adapters/DateSerializerAdapter : com/google/gson/JsonSerializer {
1088-
public fun <init> (Lio/sentry/ILogger;)V
1088+
public fun <init> (Lio/sentry/SentryOptions;)V
10891089
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
10901090
public fun serialize (Ljava/util/Date;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
10911091
}
@@ -1097,73 +1097,73 @@ public final class io/sentry/adapters/MapAdapter : com/google/gson/JsonSerialize
10971097
}
10981098

10991099
public final class io/sentry/adapters/OrientationDeserializerAdapter : com/google/gson/JsonDeserializer {
1100-
public fun <init> (Lio/sentry/ILogger;)V
1100+
public fun <init> (Lio/sentry/SentryOptions;)V
11011101
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/protocol/Device$DeviceOrientation;
11021102
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11031103
}
11041104

11051105
public final class io/sentry/adapters/OrientationSerializerAdapter : com/google/gson/JsonSerializer {
1106-
public fun <init> (Lio/sentry/ILogger;)V
1106+
public fun <init> (Lio/sentry/SentryOptions;)V
11071107
public fun serialize (Lio/sentry/protocol/Device$DeviceOrientation;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11081108
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11091109
}
11101110

11111111
public final class io/sentry/adapters/SentryIdDeserializerAdapter : com/google/gson/JsonDeserializer {
1112-
public fun <init> (Lio/sentry/ILogger;)V
1112+
public fun <init> (Lio/sentry/SentryOptions;)V
11131113
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/protocol/SentryId;
11141114
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11151115
}
11161116

11171117
public final class io/sentry/adapters/SentryIdSerializerAdapter : com/google/gson/JsonSerializer {
1118-
public fun <init> (Lio/sentry/ILogger;)V
1118+
public fun <init> (Lio/sentry/SentryOptions;)V
11191119
public fun serialize (Lio/sentry/protocol/SentryId;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11201120
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11211121
}
11221122

11231123
public final class io/sentry/adapters/SentryLevelDeserializerAdapter : com/google/gson/JsonDeserializer {
1124-
public fun <init> (Lio/sentry/ILogger;)V
1124+
public fun <init> (Lio/sentry/SentryOptions;)V
11251125
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/SentryLevel;
11261126
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11271127
}
11281128

11291129
public final class io/sentry/adapters/SentryLevelSerializerAdapter : com/google/gson/JsonSerializer {
1130-
public fun <init> (Lio/sentry/ILogger;)V
1130+
public fun <init> (Lio/sentry/SentryOptions;)V
11311131
public fun serialize (Lio/sentry/SentryLevel;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11321132
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11331133
}
11341134

11351135
public final class io/sentry/adapters/SpanIdDeserializerAdapter : com/google/gson/JsonDeserializer {
1136-
public fun <init> (Lio/sentry/ILogger;)V
1136+
public fun <init> (Lio/sentry/SentryOptions;)V
11371137
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/SpanId;
11381138
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11391139
}
11401140

11411141
public final class io/sentry/adapters/SpanIdSerializerAdapter : com/google/gson/JsonSerializer {
1142-
public fun <init> (Lio/sentry/ILogger;)V
1142+
public fun <init> (Lio/sentry/SentryOptions;)V
11431143
public fun serialize (Lio/sentry/SpanId;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11441144
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11451145
}
11461146

11471147
public final class io/sentry/adapters/SpanStatusDeserializerAdapter : com/google/gson/JsonDeserializer {
1148-
public fun <init> (Lio/sentry/ILogger;)V
1148+
public fun <init> (Lio/sentry/SentryOptions;)V
11491149
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Lio/sentry/SpanStatus;
11501150
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11511151
}
11521152

11531153
public final class io/sentry/adapters/SpanStatusSerializerAdapter : com/google/gson/JsonSerializer {
1154-
public fun <init> (Lio/sentry/ILogger;)V
1154+
public fun <init> (Lio/sentry/SentryOptions;)V
11551155
public fun serialize (Lio/sentry/SpanStatus;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11561156
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11571157
}
11581158

11591159
public final class io/sentry/adapters/TimeZoneDeserializerAdapter : com/google/gson/JsonDeserializer {
1160-
public fun <init> (Lio/sentry/ILogger;)V
1160+
public fun <init> (Lio/sentry/SentryOptions;)V
11611161
public synthetic fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/lang/Object;
11621162
public fun deserialize (Lcom/google/gson/JsonElement;Ljava/lang/reflect/Type;Lcom/google/gson/JsonDeserializationContext;)Ljava/util/TimeZone;
11631163
}
11641164

11651165
public final class io/sentry/adapters/TimeZoneSerializerAdapter : com/google/gson/JsonSerializer {
1166-
public fun <init> (Lio/sentry/ILogger;)V
1166+
public fun <init> (Lio/sentry/SentryOptions;)V
11671167
public synthetic fun serialize (Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11681168
public fun serialize (Ljava/util/TimeZone;Ljava/lang/reflect/Type;Lcom/google/gson/JsonSerializationContext;)Lcom/google/gson/JsonElement;
11691169
}

sentry/src/main/java/io/sentry/GsonSerializer.java

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,19 @@ public final class GsonSerializer implements ISerializer {
4848
@SuppressWarnings("CharsetObjectCanBeUsed")
4949
private static final Charset UTF_8 = Charset.forName("UTF-8");
5050

51-
/** the ILogger interface */
52-
private final @NotNull ILogger logger;
51+
/** the SentryOptions */
52+
private final @NotNull SentryOptions options;
5353

5454
/** the Gson instance */
5555
private final @NotNull Gson gson;
5656

57-
/** the IEnvelopeReader interface */
58-
private final @NotNull IEnvelopeReader envelopeReader;
59-
6057
/**
6158
* AndroidSerializer ctor
6259
*
63-
* @param logger the ILogger interface
64-
* @param envelopeReader the IEnvelopeReader interface
60+
* @param options the SentryOptions object
6561
*/
66-
public GsonSerializer(
67-
final @NotNull ILogger logger, final @NotNull IEnvelopeReader envelopeReader) {
68-
this.logger = Objects.requireNonNull(logger, "The ILogger object is required.");
69-
this.envelopeReader =
70-
Objects.requireNonNull(envelopeReader, "The IEnvelopeReader object is required.");
62+
public GsonSerializer(final @NotNull SentryOptions options) {
63+
this.options = Objects.requireNonNull(options, "The SentryOptions object is required.");
7164

7265
gson = provideGson();
7366
}
@@ -80,28 +73,28 @@ public GsonSerializer(
8073
private @NotNull Gson provideGson() {
8174
return new GsonBuilder()
8275
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
83-
.registerTypeAdapter(SentryId.class, new SentryIdSerializerAdapter(logger))
84-
.registerTypeAdapter(SentryId.class, new SentryIdDeserializerAdapter(logger))
85-
.registerTypeAdapter(Date.class, new DateSerializerAdapter(logger))
86-
.registerTypeAdapter(Date.class, new DateDeserializerAdapter(logger))
87-
.registerTypeAdapter(TimeZone.class, new TimeZoneSerializerAdapter(logger))
88-
.registerTypeAdapter(TimeZone.class, new TimeZoneDeserializerAdapter(logger))
76+
.registerTypeAdapter(SentryId.class, new SentryIdSerializerAdapter(options))
77+
.registerTypeAdapter(SentryId.class, new SentryIdDeserializerAdapter(options))
78+
.registerTypeAdapter(Date.class, new DateSerializerAdapter(options))
79+
.registerTypeAdapter(Date.class, new DateDeserializerAdapter(options))
80+
.registerTypeAdapter(TimeZone.class, new TimeZoneSerializerAdapter(options))
81+
.registerTypeAdapter(TimeZone.class, new TimeZoneDeserializerAdapter(options))
8982
.registerTypeAdapter(
90-
Device.DeviceOrientation.class, new OrientationSerializerAdapter(logger))
83+
Device.DeviceOrientation.class, new OrientationSerializerAdapter(options))
9184
.registerTypeAdapter(
92-
Device.DeviceOrientation.class, new OrientationDeserializerAdapter(logger))
93-
.registerTypeAdapter(SentryLevel.class, new SentryLevelSerializerAdapter(logger))
94-
.registerTypeAdapter(SentryLevel.class, new SentryLevelDeserializerAdapter(logger))
95-
.registerTypeAdapter(Contexts.class, new ContextsDeserializerAdapter(logger))
96-
.registerTypeAdapter(Contexts.class, new ContextsSerializerAdapter(logger))
85+
Device.DeviceOrientation.class, new OrientationDeserializerAdapter(options))
86+
.registerTypeAdapter(SentryLevel.class, new SentryLevelSerializerAdapter(options))
87+
.registerTypeAdapter(SentryLevel.class, new SentryLevelDeserializerAdapter(options))
88+
.registerTypeAdapter(Contexts.class, new ContextsDeserializerAdapter(options))
89+
.registerTypeAdapter(Contexts.class, new ContextsSerializerAdapter(options))
9790
.registerTypeAdapterFactory(UnknownPropertiesTypeAdapterFactory.get())
9891
.registerTypeAdapter(SentryEnvelopeHeader.class, new SentryEnvelopeHeaderAdapter())
9992
.registerTypeAdapter(SentryEnvelopeItemHeader.class, new SentryEnvelopeItemHeaderAdapter())
100-
.registerTypeAdapter(Session.class, new SessionAdapter(logger))
101-
.registerTypeAdapter(SpanId.class, new SpanIdDeserializerAdapter(logger))
102-
.registerTypeAdapter(SpanId.class, new SpanIdSerializerAdapter(logger))
103-
.registerTypeAdapter(SpanStatus.class, new SpanStatusDeserializerAdapter(logger))
104-
.registerTypeAdapter(SpanStatus.class, new SpanStatusSerializerAdapter(logger))
93+
.registerTypeAdapter(Session.class, new SessionAdapter(options))
94+
.registerTypeAdapter(SpanId.class, new SpanIdDeserializerAdapter(options))
95+
.registerTypeAdapter(SpanId.class, new SpanIdSerializerAdapter(options))
96+
.registerTypeAdapter(SpanStatus.class, new SpanStatusDeserializerAdapter(options))
97+
.registerTypeAdapter(SpanStatus.class, new SpanStatusSerializerAdapter(options))
10598
.registerTypeHierarchyAdapter(Collection.class, new CollectionAdapter())
10699
.registerTypeHierarchyAdapter(Map.class, new MapAdapter())
107100
.disableHtmlEscaping()
@@ -133,9 +126,9 @@ Device.DeviceOrientation.class, new OrientationDeserializerAdapter(logger))
133126
public @Nullable SentryEnvelope deserializeEnvelope(final @NotNull InputStream inputStream) {
134127
Objects.requireNonNull(inputStream, "The InputStream object is required.");
135128
try {
136-
return envelopeReader.read(inputStream);
129+
return options.getEnvelopeReader().read(inputStream);
137130
} catch (IOException e) {
138-
logger.log(SentryLevel.ERROR, "Error deserializing envelope.", e);
131+
options.getLogger().log(SentryLevel.ERROR, "Error deserializing envelope.", e);
139132
return null;
140133
}
141134
}
@@ -146,8 +139,8 @@ public <T> void serialize(final @NotNull T entity, final @NotNull Writer writer)
146139
Objects.requireNonNull(entity, "The entity is required.");
147140
Objects.requireNonNull(writer, "The Writer object is required.");
148141

149-
if (logger.isEnabled(SentryLevel.DEBUG)) {
150-
logger.log(SentryLevel.DEBUG, "Serializing object: %s", gson.toJson(entity));
142+
if (options.getLogger().isEnabled(SentryLevel.DEBUG)) {
143+
options.getLogger().log(SentryLevel.DEBUG, "Serializing object: %s", gson.toJson(entity));
151144
}
152145
gson.toJson(entity, entity.getClass(), writer);
153146

@@ -187,7 +180,9 @@ public void serialize(
187180

188181
writer.write("\n");
189182
} catch (Exception exception) {
190-
logger.log(SentryLevel.ERROR, "Failed to create envelope item. Dropping it.", exception);
183+
options
184+
.getLogger()
185+
.log(SentryLevel.ERROR, "Failed to create envelope item. Dropping it.", exception);
191186
}
192187
}
193188
writer.flush();

sentry/src/main/java/io/sentry/SentryOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public class SentryOptions {
8181
private @NotNull IEnvelopeReader envelopeReader = new EnvelopeReader();
8282

8383
/** Serializer interface to serialize/deserialize json events */
84-
private @NotNull ISerializer serializer = new GsonSerializer(logger, envelopeReader);
84+
private @NotNull ISerializer serializer = new GsonSerializer(this);
8585

8686
/**
8787
* Sentry client name used for the HTTP authHeader and userAgent eg

sentry/src/main/java/io/sentry/SessionAdapter.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
@ApiStatus.Internal
1818
public final class SessionAdapter extends TypeAdapter<Session> {
1919

20-
private final @NotNull ILogger logger;
20+
private final @NotNull SentryOptions options;
2121

22-
public SessionAdapter(final @NotNull ILogger logger) {
23-
this.logger = Objects.requireNonNull(logger, "The Logger is required.");
22+
public SessionAdapter(final @NotNull SentryOptions options) {
23+
this.options = Objects.requireNonNull(options, "The SentryOptions is required.");
2424
}
2525

2626
@Override
@@ -137,7 +137,7 @@ public Session read(JsonReader reader) throws IOException {
137137
sidStr = reader.nextString();
138138
sid = UUID.fromString(sidStr);
139139
} catch (IllegalArgumentException e) {
140-
logger.log(SentryLevel.ERROR, "%s sid is not valid.", sidStr);
140+
options.getLogger().log(SentryLevel.ERROR, "%s sid is not valid.", sidStr);
141141
}
142142
break;
143143
case "did":
@@ -155,7 +155,7 @@ public Session read(JsonReader reader) throws IOException {
155155
statusStr = StringUtils.capitalize(reader.nextString());
156156
status = Session.State.valueOf(statusStr);
157157
} catch (IllegalArgumentException e) {
158-
logger.log(SentryLevel.ERROR, "%s status is not valid.", statusStr);
158+
options.getLogger().log(SentryLevel.ERROR, "%s status is not valid.", statusStr);
159159
}
160160
break;
161161
case "errors":
@@ -204,7 +204,9 @@ public Session read(JsonReader reader) throws IOException {
204204
reader.endObject();
205205

206206
if (status == null || started == null || release == null || release.isEmpty()) {
207-
logger.log(SentryLevel.ERROR, "Session is gonna be dropped due to invalid fields.");
207+
options
208+
.getLogger()
209+
.log(SentryLevel.ERROR, "Session is gonna be dropped due to invalid fields.");
208210
return null;
209211
}
210212

@@ -229,7 +231,7 @@ public Session read(JsonReader reader) throws IOException {
229231
try {
230232
return DateUtils.getDateTime(timestamp);
231233
} catch (IllegalArgumentException e) {
232-
logger.log(SentryLevel.ERROR, e, "Error converting session (%s) field.", field);
234+
options.getLogger().log(SentryLevel.ERROR, e, "Error converting session (%s) field.", field);
233235
}
234236
return null;
235237
}

0 commit comments

Comments
 (0)