diff --git a/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLogEntry.java b/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLogEntry.java
index 3f5a836..0450d0c 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLogEntry.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLogEntry.java
@@ -8,8 +8,8 @@
 /**
  * A JSON log entry compatible with Google Cloud Logging.
  *
- * <p>Roughly (but not quite) corresponds to Google Cloud Logging's
- * <a href="https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry">LogEntry</a>
+ * <p>Roughly (but not quite) corresponds to Google Cloud Logging's <a
+ * href="https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry">LogEntry</a>
  * structure.
  */
 public record GoogleCloudLogEntry(
@@ -25,14 +25,10 @@
     @Nullable String getNestedDiagnosticContext,
     @Nullable @JsonbProperty("@type") String getType) {
 
-  static public record SourceLocation(
-      @Nullable String getFile,
-      @Nullable String getLine,
-      @Nullable String getFunction) {}
+  public static record SourceLocation(
+      @Nullable String getFile, @Nullable String getLine, @Nullable String getFunction) {}
 
-  static public record Timestamp(
-      long getSeconds,
-      int getNanos) {
+  public static record Timestamp(long getSeconds, int getNanos) {
 
     public Timestamp(Instant t) {
       this(t.getEpochSecond(), t.getNano());
diff --git a/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLoggingFormatter.java b/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLoggingFormatter.java
index a44e8b5..3ec1fcc 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLoggingFormatter.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/observability/googlecloud/jsonlogging/GoogleCloudLoggingFormatter.java
@@ -54,7 +54,10 @@
 
     var sourceLocation =
         new GoogleCloudLogEntry.SourceLocation(
-            logRecord.getSourceFileName(), String.valueOf(logRecord.getSourceLineNumber()), String.format("%s.%s", logRecord.getSourceClassName(), logRecord.getSourceMethodName()));
+            logRecord.getSourceFileName(),
+            String.valueOf(logRecord.getSourceLineNumber()),
+            String.format(
+                "%s.%s", logRecord.getSourceClassName(), logRecord.getSourceMethodName()));
 
     var entry =
         new GoogleCloudLogEntry(
@@ -96,9 +99,7 @@
     return messageStringWriter.toString();
   }
 
-  /**
-   * Computes the Google Cloud Logging severity corresponding to a given {@link Level}.
-   */
+  /** Computes the Google Cloud Logging severity corresponding to a given {@link Level}. */
   private static String severityOf(Level level) {
     if (level.intValue() < 500) {
       return TRACE_LEVEL;
