Skip to content

Commit d9c2a15

Browse files
committed
treat unformatted message and params as pii if logback encoder is present
1 parent 7792597 commit d9c2a15

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

sentry-logback/src/main/java/io/sentry/logback/SentryAppender.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@
1616
import io.sentry.InitPriority;
1717
import io.sentry.ScopesAdapter;
1818
import io.sentry.Sentry;
19+
import io.sentry.SentryAttribute;
20+
import io.sentry.SentryAttributes;
1921
import io.sentry.SentryEvent;
2022
import io.sentry.SentryIntegrationPackageStorage;
2123
import io.sentry.SentryLevel;
2224
import io.sentry.SentryLogLevel;
2325
import io.sentry.SentryOptions;
2426
import io.sentry.exception.ExceptionMechanismException;
27+
import io.sentry.logger.SentryLogParameters;
2528
import io.sentry.protocol.Mechanism;
2629
import io.sentry.protocol.Message;
2730
import io.sentry.protocol.SdkVersion;
@@ -177,14 +180,20 @@ protected void append(@NotNull ILoggingEvent eventObject) {
177180
protected void captureLog(@NotNull ILoggingEvent loggingEvent) {
178181
final @NotNull SentryLogLevel sentryLevel = toSentryLogLevel(loggingEvent.getLevel());
179182

180-
// // if encoder is set we treat message+params as PII as encoders may be used to mask/strip
181-
// PII
182-
// if (encoder == null || options.isSendDefaultPii()) {
183-
// message.setMessage(loggingEvent.getMessage());
184-
// message.setParams(toParams(loggingEvent.getArgumentArray()));
185-
// }
183+
@Nullable Object[] arguments = null;
184+
final @NotNull SentryAttributes attributes = SentryAttributes.of();
186185

187-
Sentry.logger().log(sentryLevel, formatted(loggingEvent), loggingEvent.getArgumentArray());
186+
// if encoder is set we treat message+params as PII as encoders may be used to mask/strip PII
187+
if (encoder == null || options.isSendDefaultPii()) {
188+
attributes.add(
189+
SentryAttribute.stringAttribute("sentry.message.template", loggingEvent.getMessage()));
190+
arguments = loggingEvent.getArgumentArray();
191+
}
192+
193+
final @NotNull String formattedMessage = formatted(loggingEvent);
194+
final @NotNull SentryLogParameters params = SentryLogParameters.create(attributes);
195+
196+
Sentry.logger().log(sentryLevel, params, formattedMessage, arguments);
188197
}
189198

190199
private String formatted(@NotNull ILoggingEvent loggingEvent) {

sentry/src/main/java/io/sentry/logger/LoggerApi.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,11 @@ private void captureLog(
184184
i++;
185185
}
186186
if (i > 0) {
187-
attributes.put(
188-
"sentry.message.template",
189-
new SentryLogEventAttributeValue(SentryAttributeType.STRING, message));
187+
if (attributes.get("sentry.message.template") == null) {
188+
attributes.put(
189+
"sentry.message.template",
190+
new SentryLogEventAttributeValue(SentryAttributeType.STRING, message));
191+
}
190192
}
191193
}
192194

0 commit comments

Comments
 (0)