Skip to content

Commit eec7409

Browse files
authored
Merge pull request #51 from avaje/feature/properties-final
Make the properties field final, initialise in constructor
2 parents 782c810 + 8dd8c66 commit eec7409

File tree

1 file changed

+13
-23
lines changed

1 file changed

+13
-23
lines changed

src/main/java/io/avaje/logback/encoder/JsonbEncoder.java

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,18 @@ public final class JsonbEncoder extends EncoderBase<ILoggingEvent> {
2020
private static final byte[] EMPTY_BYTES = {};
2121
private final JsonStream json;
2222
private final Map<String, String> customFieldsMap = new HashMap<>();
23-
private PropertyNames properties;
24-
private DateTimeFormatter formatter;
25-
23+
private final PropertyNames properties;
2624
private final ThrowableHandlingConverter throwableConverter;
2725

26+
private DateTimeFormatter formatter;
2827
private TimeZone timeZone = TimeZone.getDefault();
29-
3028
/** Null implies default of ISO_OFFSET_DATE_TIME */
3129
private String timestampPattern;
32-
3330
private int fieldExtra;
3431

3532
public JsonbEncoder() {
3633
this.json = JsonStream.builder().build();
34+
this.properties =json.properties("@timestamp", "level", "logger", "message", "thread", "stack_trace");
3735

3836
final var converter = new ShortenedThrowableConverter();
3937
converter.setMaxDepthPerThrowable(3);
@@ -42,13 +40,11 @@ public JsonbEncoder() {
4240
de.setTargetLength(20);
4341
converter.setClassNameAbbreviator(de);
4442
converter.setRootCauseFirst(true);
45-
throwableConverter = converter;
43+
this.throwableConverter = converter;
4644
}
4745

4846
@Override
4947
public void start() {
50-
properties =
51-
json.properties("@timestamp", "level", "logger", "message", "thread", "stack_trace");
5248
formatter = TimeZoneUtils.formatter(timestampPattern, timeZone.toZoneId());
5349
fieldExtra =
5450
customFieldsMap.entrySet().stream()
@@ -82,8 +78,7 @@ public byte[] encode(ILoggingEvent event) {
8278
final var threadName = event.getThreadName();
8379
final var message = event.getFormattedMessage();
8480
final var loggerName = event.getLoggerName();
85-
final int bufferSize =
86-
100 + extra + fieldExtra + message.length() + threadName.length() + loggerName.length();
81+
final int bufferSize = 100 + extra + fieldExtra + message.length() + threadName.length() + loggerName.length();
8782
final var outputStream = new ByteArrayOutputStream(bufferSize);
8883

8984
try (var writer = json.writer(outputStream)) {
@@ -98,23 +93,18 @@ public byte[] encode(ILoggingEvent event) {
9893
writer.value(message);
9994
writer.name(4);
10095
writer.value(threadName);
101-
10296
if (!stackTraceBody.isEmpty()) {
10397
writer.name(5);
10498
writer.value(stackTraceBody);
10599
}
106-
customFieldsMap.forEach(
107-
(k, v) -> {
108-
writer.name(k);
109-
writer.value(v);
110-
});
111-
event
112-
.getMDCPropertyMap()
113-
.forEach(
114-
(k, v) -> {
115-
writer.name(k);
116-
writer.value(v);
117-
});
100+
customFieldsMap.forEach((k, v) -> {
101+
writer.name(k);
102+
writer.value(v);
103+
});
104+
event.getMDCPropertyMap().forEach((k, v) -> {
105+
writer.name(k);
106+
writer.value(v);
107+
});
118108
writer.endObject();
119109
writer.writeNewLine();
120110
}

0 commit comments

Comments
 (0)