From a453dd5e657ec9d3d6d5da36a0945af11f06fc7f Mon Sep 17 00:00:00 2001 From: Stephan Strate Date: Mon, 3 Jun 2024 23:26:35 +0200 Subject: [PATCH] Timestamp nano precision --- .../loggingjson/providers/TimestampJsonProvider.java | 4 ++-- .../providers/TimestampJsonProviderJsonbTest.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/runtime/src/main/java/io/quarkiverse/loggingjson/providers/TimestampJsonProvider.java b/runtime/src/main/java/io/quarkiverse/loggingjson/providers/TimestampJsonProvider.java index 88c3197..2b35802 100644 --- a/runtime/src/main/java/io/quarkiverse/loggingjson/providers/TimestampJsonProvider.java +++ b/runtime/src/main/java/io/quarkiverse/loggingjson/providers/TimestampJsonProvider.java @@ -44,8 +44,8 @@ public TimestampJsonProvider(Config.TimestampField config, String defaultName) { @Override public void writeTo(JsonGenerator generator, ExtLogRecord event) throws IOException { - long millis = event.getMillis(); - JsonWritingUtils.writeStringField(generator, fieldName, dateTimeFormatter.format(Instant.ofEpochMilli(millis))); + Instant timestamp = event.getInstant(); + JsonWritingUtils.writeStringField(generator, fieldName, dateTimeFormatter.format(timestamp)); } @Override diff --git a/runtime/src/test/java/io/quarkiverse/loggingjson/providers/TimestampJsonProviderJsonbTest.java b/runtime/src/test/java/io/quarkiverse/loggingjson/providers/TimestampJsonProviderJsonbTest.java index 3df1533..8c27ec4 100644 --- a/runtime/src/test/java/io/quarkiverse/loggingjson/providers/TimestampJsonProviderJsonbTest.java +++ b/runtime/src/test/java/io/quarkiverse/loggingjson/providers/TimestampJsonProviderJsonbTest.java @@ -8,6 +8,8 @@ import java.time.zone.ZoneRulesException; import java.util.Optional; import java.util.logging.Level; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.jboss.logmanager.ExtLogRecord; import org.junit.jupiter.api.Assertions; @@ -37,6 +39,10 @@ void testDefaultConfig() throws Exception { String timestamp = result.findValue("timestamp").asText(); Assertions.assertNotNull(timestamp); + + Matcher nanosMatcher = Pattern.compile("(.*)\\.(?[0-9]{9})(Z|\\+.*)").matcher(timestamp); + Assertions.assertTrue(nanosMatcher.matches()); + OffsetDateTime logTimestamp = OffsetDateTime.parse(timestamp); Assertions.assertTrue(beforeLog.isBefore(logTimestamp) || beforeLog.isEqual(logTimestamp)); Assertions.assertTrue(afterLog.isAfter(logTimestamp) || afterLog.isEqual(logTimestamp));