You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/05/24 19:34:58 UTC

[logging-log4j2] branch master updated: Allow JsonLayout output JSON `null` for ContextMap (#496)

This is an automated email from the ASF dual-hosted git repository.

vy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/master by this push:
     new cf293ae  Allow JsonLayout output JSON `null` for ContextMap (#496)
cf293ae is described below

commit cf293ae21ce57b68e55e373853dd8f17703b3f6f
Author: Владимир Поршкевич <ne...@inbox.ru>
AuthorDate: Mon May 24 22:34:49 2021 +0300

    Allow JsonLayout output JSON `null` for ContextMap (#496)
---
 .../org/apache/logging/log4j/jackson/ContextDataSerializer.java     | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/log4j-layout-jackson/src/main/java/org/apache/logging/log4j/jackson/ContextDataSerializer.java b/log4j-layout-jackson/src/main/java/org/apache/logging/log4j/jackson/ContextDataSerializer.java
index 245e436..6023ada 100644
--- a/log4j-layout-jackson/src/main/java/org/apache/logging/log4j/jackson/ContextDataSerializer.java
+++ b/log4j-layout-jackson/src/main/java/org/apache/logging/log4j/jackson/ContextDataSerializer.java
@@ -42,7 +42,11 @@ public class ContextDataSerializer extends StdSerializer<ReadOnlyStringMap> {
         @Override
         public void accept(final String key, final Object value, final JsonGenerator jsonGenerator) {
             try {
-                jsonGenerator.writeStringField(key, String.valueOf(value));
+                if (value == null) {
+                    jsonGenerator.writeNullField(key);
+                } else {
+                    jsonGenerator.writeStringField(key, String.valueOf(value));
+                }
             } catch (final Exception ex) {
                 throw new IllegalStateException("Problem with key " + key, ex);
             }