diff --git a/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
index 8517bde..8bcea2b 100644
--- a/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
+++ b/core/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
@@ -30,7 +30,7 @@
   private final Timestamp timestamp;
   @Nullable private final String trace;
   @Nullable private final String spanId;
-  private final SourceLocation sourceLocation;
+  @Nullable private final SourceLocation sourceLocation;
   private final Map<String, String> labels;
   private final List<StructuredParameter> parameters;
   private final Map<String, String> mappedDiagnosticContext;
@@ -43,7 +43,7 @@
       Timestamp timestamp,
       @Nullable String trace,
       @Nullable String spanId,
-      SourceLocation sourceLocation,
+      @Nullable SourceLocation sourceLocation,
       Map<String, String> labels,
       List<StructuredParameter> parameters,
       Map<String, String> mappedDiagnosticContext,
@@ -135,11 +135,13 @@
       b.add("@type", type);
     }
 
-    return b.add("message", message)
-        .add("severity", severity)
-        .add("timestamp", timestamp.json(json))
-        .add("logging.googleapis.com/sourceLocation", sourceLocation.json(json))
-        .addAll(jsonOfStringMap(json, mappedDiagnosticContext))
+    b.add("message", message).add("severity", severity).add("timestamp", timestamp.json(json));
+
+    if (sourceLocation != null) {
+      b.add("logging.googleapis.com/sourceLocation", sourceLocation.json(json));
+    }
+
+    return b.addAll(jsonOfStringMap(json, mappedDiagnosticContext))
         .addAll(jsonOfParameterMap(json, parameters));
   }
 
