diff --git a/.gitignore b/.gitignore
index 0390997..a7f8234 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/.gradle
 /.idea
 
 build/
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
index 2be17a2..d108c81 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
@@ -15,8 +15,9 @@
  * href="https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry">LogEntry</a>
  * structure.
  *
- * <p>A few of the fields are treated specially by the fluentd instance running in Google Kubernetes
- * Engine. All other fields end up in the jsonPayload field on the Google Cloud Logging side.
+ * <p>A few of the fields are <a href="https://cloud.google.com/logging/docs/structured-logging">
+ * treated specially</a> by the fluentd instance running in Google Kubernetes Engine. All other
+ * fields end up in the jsonPayload field on the Google Cloud Logging side.
  */
 final class LogEntry {
 
@@ -111,11 +112,11 @@
     var b = Json.createObjectBuilder();
 
     if (trace != null) {
-      b.add("trace", trace);
+      b.add("logging.googleapis.com/trace", trace);
     }
 
     if (spanId != null) {
-      b.add("spanId", spanId);
+      b.add("logging.googleapis.com/spanId", spanId);
     }
 
     if (nestedDiagnosticContext != null && !nestedDiagnosticContext.isEmpty()) {
@@ -123,7 +124,7 @@
     }
 
     if (!labels.isEmpty()) {
-      b.add("labels", jsonOfStringMap(labels));
+      b.add("logging.googleapis.com/labels", jsonOfStringMap(labels));
     }
 
     if (type != null) {
@@ -133,7 +134,7 @@
     return b.add("message", message)
         .add("severity", severity)
         .add("timestamp", timestamp.json())
-        .add("sourceLocation", sourceLocation.json())
+        .add("logging.googleapis.com/sourceLocation", sourceLocation.json())
         .addAll(jsonOfStringMap(mappedDiagnosticContext))
         .addAll(jsonOfParameterMap(parameters));
   }
