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 99269ba LOG4J2-2973 Minor tweaks to previous work.
99269ba is described below
commit 99269ba6ea78ac6225b361b7f4425cef6f31820b
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Wed Feb 3 10:33:40 2021 +0100
LOG4J2-2973 Minor tweaks to previous work.
---
...mplateLayoutAdditionalFieldPropertiesTest.java} | 6 +-
...nTemplateLayoutAdditionalFieldTestHelpers.java} | 28 +++++++-
... JsonTemplateLayoutAdditionalFieldXmlTest.java} | 7 +-
...JsonTemplateLayoutAdditionalFieldYamlTest.java} | 6 +-
...eldEnrichedJsonTemplateLayoutLogging.properties | 33 ++++-----
...onalFieldEnrichedJsonTemplateLayoutLogging.yaml | 6 +-
src/changes/changes.xml | 4 +-
.../asciidoc/manual/json-template-layout.vm.adoc | 84 ++++++++++++++--------
8 files changed, 112 insertions(+), 62 deletions(-)
diff --git
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestProperties.java
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldPropertiesTest.java
similarity index 88%
rename from
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestProperties.java
rename to
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldPropertiesTest.java
index 5c3911e..735a55d 100644
---
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestProperties.java
+++
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldPropertiesTest.java
@@ -23,12 +23,14 @@ import org.apache.logging.log4j.test.appender.ListAppender;
import org.junit.jupiter.api.Test;
@LoggerContextSource("additionalFieldEnrichedJsonTemplateLayoutLogging.properties")
-class JsonTemplateLayoutAdditionalFieldTestProperties {
+class JsonTemplateLayoutAdditionalFieldPropertiesTest {
@Test
void test_additional_fields_are_resolved(
final LoggerContext loggerContext,
final @Named(value = "List") ListAppender appender) {
-
JsonTemplateLayoutAdditionalFieldTestHelper.assertAdditionalFields(loggerContext,
appender);
+ JsonTemplateLayoutAdditionalFieldTestHelpers
+ .assertAdditionalFields(loggerContext, appender);
}
+
}
diff --git
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelper.java
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelpers.java
similarity index 62%
rename from
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelper.java
rename to
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelpers.java
index 605cc3a..383206c 100644
---
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelper.java
+++
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestHelpers.java
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
package org.apache.logging.log4j.layout.template.json;
import org.apache.logging.log4j.Logger;
@@ -11,13 +27,18 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-class JsonTemplateLayoutAdditionalFieldTestHelper {
+final class JsonTemplateLayoutAdditionalFieldTestHelpers {
+
+ private JsonTemplateLayoutAdditionalFieldTestHelpers() {}
+
+ static void assertAdditionalFields(
+ final LoggerContext loggerContext,
+ final ListAppender appender) {
- static void assertAdditionalFields(final LoggerContext loggerContext,
ListAppender appender) {
// Log an event.
final Logger logger =
loggerContext.getLogger(
- JsonTemplateLayoutAdditionalFieldTestHelper.class);
+ JsonTemplateLayoutAdditionalFieldTestHelpers.class);
logger.info("trigger");
// Verify that the appender has logged the event.
@@ -44,4 +65,5 @@ class JsonTemplateLayoutAdditionalFieldTestHelper {
.containsEntry("listField", Arrays.asList(1, "two"));
}
+
}
diff --git
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestXML.java
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldXmlTest.java
similarity index 88%
rename from
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestXML.java
rename to
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldXmlTest.java
index d96da36..f9194ee 100644
---
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestXML.java
+++
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldXmlTest.java
@@ -23,11 +23,14 @@ import org.apache.logging.log4j.test.appender.ListAppender;
import org.junit.jupiter.api.Test;
@LoggerContextSource("additionalFieldEnrichedJsonTemplateLayoutLogging.xml")
-class JsonTemplateLayoutAdditionalFieldTestXML {
+class JsonTemplateLayoutAdditionalFieldXmlTest {
+
@Test
void test_additional_fields_are_resolved(
final LoggerContext loggerContext,
final @Named(value = "List") ListAppender appender) {
-
JsonTemplateLayoutAdditionalFieldTestHelper.assertAdditionalFields(loggerContext,
appender);
+ JsonTemplateLayoutAdditionalFieldTestHelpers
+ .assertAdditionalFields(loggerContext, appender);
}
+
}
diff --git
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestYAML.java
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldYamlTest.java
similarity index 88%
rename from
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestYAML.java
rename to
log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldYamlTest.java
index 204ead8..feecefb 100644
---
a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestYAML.java
+++
b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldYamlTest.java
@@ -23,12 +23,14 @@ import org.apache.logging.log4j.test.appender.ListAppender;
import org.junit.jupiter.api.Test;
@LoggerContextSource("additionalFieldEnrichedJsonTemplateLayoutLogging.yaml")
-class JsonTemplateLayoutAdditionalFieldTestYAML {
+class JsonTemplateLayoutAdditionalFieldYamlTest {
@Test
void test_additional_fields_are_resolved(
final LoggerContext loggerContext,
final @Named(value = "List") ListAppender appender) {
-
JsonTemplateLayoutAdditionalFieldTestHelper.assertAdditionalFields(loggerContext,
appender);
+ JsonTemplateLayoutAdditionalFieldTestHelpers
+ .assertAdditionalFields(loggerContext, appender);
}
+
}
diff --git
a/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.properties
b/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.properties
index 58e65ba..64bde5f 100644
---
a/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.properties
+++
b/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.properties
@@ -17,24 +17,21 @@ appender.list.name = List
appender.list.type = List
appender.list.raw = true
appender.list.layout.type = JsonTemplateLayout
-appender.list.layout.charset = UTF-8
-appender.list.layout.extra[0].key = stringField
-appender.list.layout.extra[0].value = string
-appender.list.layout.extra[0].type = EventTemplateAdditionalField
-appender.list.layout.extra[0].format = STRING
-appender.list.layout.extra[1].key = numberField
-appender.list.layout.extra[1].value = 1
-appender.list.layout.extra[1].format = JSON
-appender.list.layout.extra[1].type = EventTemplateAdditionalField
-appender.list.layout.extra[2].key = objectField
-appender.list.layout.extra[2].value = {"numberField":1}
-appender.list.layout.extra[2].format = JSON
-appender.list.layout.extra[2].type = EventTemplateAdditionalField
-appender.list.layout.extra[3].key = listField
-appender.list.layout.extra[3].value = [1, "two"]
-appender.list.layout.extra[3].format = JSON
-appender.list.layout.extra[3].type = EventTemplateAdditionalField
+appender.list.layout.eventTemplateAdditionalField[0].type =
EventTemplateAdditionalField
+appender.list.layout.eventTemplateAdditionalField[0].key = stringField
+appender.list.layout.eventTemplateAdditionalField[0].value = string
+appender.list.layout.eventTemplateAdditionalField[1].type =
EventTemplateAdditionalField
+appender.list.layout.eventTemplateAdditionalField[1].key = numberField
+appender.list.layout.eventTemplateAdditionalField[1].value = 1
+appender.list.layout.eventTemplateAdditionalField[1].format = JSON
+appender.list.layout.eventTemplateAdditionalField[2].type =
EventTemplateAdditionalField
+appender.list.layout.eventTemplateAdditionalField[2].key = objectField
+appender.list.layout.eventTemplateAdditionalField[2].value = {"numberField":1}
+appender.list.layout.eventTemplateAdditionalField[2].format = JSON
+appender.list.layout.eventTemplateAdditionalField[3].type =
EventTemplateAdditionalField
+appender.list.layout.eventTemplateAdditionalField[3].key = listField
+appender.list.layout.eventTemplateAdditionalField[3].value = [1, "two"]
+appender.list.layout.eventTemplateAdditionalField[3].format = JSON
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = List
-
diff --git
a/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.yaml
b/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.yaml
index 676b3ce..58a2bd9 100644
---
a/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.yaml
+++
b/log4j-layout-template-json/src/test/resources/additionalFieldEnrichedJsonTemplateLayoutLogging.yaml
@@ -14,13 +14,13 @@
# limitations under the License.
Configuration:
- status: OFF
+ status: "OFF"
appenders:
List:
name: "List"
raw: "true"
JsonTemplateLayout:
- EventTemplateadditionalField:
+ eventTemplateAdditionalField:
- key: "stringField"
value: "string"
- key: "numberField"
@@ -36,4 +36,4 @@ Configuration:
root:
level: "trace"
AppenderRef:
- ref: List
+ ref: "List"
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2b33676..8a69cf4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -31,8 +31,8 @@
- "remove" - Removed
-->
<release version="3.0.0" date="2021-MM-DD" description="GA Release 3.0.0">
- <action issue="LOG4J2-2973" dev="fricchiuti" typ="fix">
- Rename EventTemplateAdditionalField#type (conflicting with properties
file parser) to "format"
+ <action issue="LOG4J2-2973" dev="fricchiuti" type="fix">
+ Rename EventTemplateAdditionalField#type (conflicting with properties
file parser) to "format".
</action>
<action issue="LOG4J2-2999" dev="vy" type="add">
Replace JsonTemplateLayout resolver configurations table in docs with
sections.
diff --git a/src/site/asciidoc/manual/json-template-layout.vm.adoc
b/src/site/asciidoc/manual/json-template-layout.vm.adoc
index d3f700c..4575259 100644
--- a/src/site/asciidoc/manual/json-template-layout.vm.adoc
+++ b/src/site/asciidoc/manual/json-template-layout.vm.adoc
@@ -242,11 +242,12 @@ appender.console.json.eventTemplateUri =
classpath:LogstashJsonEventLayoutV1.jso
[#additional-event-template-fields]
=== Additonal event template fields
-Additional event template field is a convenient short-cut to add custom fields
-to a template or override the fields of a template. Following configuration
-overrides the `host` field of the `GelfLayout.json` template and adds two new
-custom fields:
+Additional event template fields are a convenient short-cut to add custom
fields
+to a template or override the existing ones. Following configuration overrides
+the `host` field of the `GelfLayout.json` template and adds two new custom
+fields:
+.XML configuration with additional fields
[source,xml]
----
<JsonTemplateLayout eventTemplateUri="classpath:GelfLayout.json">
@@ -257,40 +258,63 @@ custom fields:
----
The default `format` for the added new fields are `String`.
-One can also pass JSON literals into additional fields:
+One can also provide JSON-formatted additional fields:
+.XML-formatted configuration with JSON-formatted additional fields
[source,xml]
----
-<EventTemplateAdditionalField
- key="marker"
- format="JSON"
- value='{"$resolver": "marker", "field": "name"}'/>
-<EventTemplateAdditionalField
- key="aNumber"
- format="JSON"
- value="1"/>
-<EventTemplateAdditionalField
- key="aList"
- format="JSON"
- value='[1,2,"string"]'/>
+<JsonTemplateLayout eventTemplateUri="classpath:GelfLayout.json">
+ <EventTemplateAdditionalField
+ key="marker"
+ format="JSON"
+ value='{"$resolver": "marker", "field": "name"}'/>
+ <EventTemplateAdditionalField
+ key="aNumber"
+ format="JSON"
+ value="1"/>
+ <EventTemplateAdditionalField
+ key="aList"
+ format="JSON"
+ value='[1, 2, "three"]'/>
+</JsonTemplateLayout>
----
-When using a configuration file with a `.properties` extension, additional
fields can be added as follows:
+Additional event template fields can also be introduced using properties- and
+YAML-formatted configuration:
+.Properties-formatted configuration with JSON-formatted additional fields
[source, properties]
----
-appender.console.layout.extra[0].key = marker
-appender.console.layout.extra[0].value = {"$resolver": "marker", "field":
"name"}
-appender.console.layout.extra[0].format = JSON
-appender.console.layout.extra[0].type = EventTemplateAdditionalField
-appender.console.layout.extra[1].key = aNumber
-appender.console.layout.extra[1].value = 1
-appender.console.layout.extra[1].format = JSON
-appender.console.layout.extra[1].type = EventTemplateAdditionalField
-appender.console.layout.extra[2].key = aList
-appender.console.layout.extra[2].value = [1,2,"string"]
-appender.console.layout.extra[2].format = JSON
-appender.console.layout.extra[2].type = EventTemplateAdditionalField
+appender.console.layout.type = JsonTemplateLayout
+appender.console.layout.eventTemplateUri = classpath:GelfLayout.json
+appender.console.layout.eventTemplateAdditionalField[0].type =
EventTemplateAdditionalField
+appender.console.layout.eventTemplateAdditionalField[0].key = marker
+appender.console.layout.eventTemplateAdditionalField[0].value = {"$resolver":
"marker", "field": "name"}
+appender.console.layout.eventTemplateAdditionalField[0].format = JSON
+appender.console.layout.eventTemplateAdditionalField[1].type =
EventTemplateAdditionalField
+appender.console.layout.eventTemplateAdditionalField[1].key = aNumber
+appender.console.layout.eventTemplateAdditionalField[1].value = 1
+appender.console.layout.eventTemplateAdditionalField[1].format = JSON
+appender.console.layout.eventTemplateAdditionalField[2].type =
EventTemplateAdditionalField
+appender.console.layout.eventTemplateAdditionalField[2].key = aList
+appender.console.layout.eventTemplateAdditionalField[2].value = [1, 2, "three"]
+appender.console.layout.eventTemplateAdditionalField[2].format = JSON
+----
+
+.YAML-formatted configuration with JSON-formatted additional fields
+[source,yaml]
+----
+JsonTemplateLayout:
+ eventTemplateAdditionalField:
+ - key: "marker"
+ value: '{"$resolver": "marker", "field": "name"}'
+ format: "JSON"
+ - key: "aNumber"
+ value: "1"
+ format: "JSON"
+ - key: "aList"
+ value: '[1, 2, "three"]'
+ format: "JSON"
----
[#recycling-strategy]