You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by GitBox <gi...@apache.org> on 2021/01/27 13:29:19 UTC

[GitHub] [logging-log4j2] Fabricc opened a new pull request #462: LOG4J2 Refactored field type to format in EventTemplateAdditionalField

Fabricc opened a new pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462


   When using arrays in a configuration file the parameter type is used to identify which plugin should be used and therefore it is reserved. For this reason, the type of EventTemplateAdditionalField is now referred as format.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] jftai1 edited a comment on pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
jftai1 edited a comment on pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462#issuecomment-769876336


   Please  had my vote on fixing this issue...
   
   I am hoping to use this feature  in a server which has a log4j2.properties configuration and a cannot alter the format.
   Currently using 2.14.0
   
   Regards
   
   JF


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] jftai1 commented on pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
jftai1 commented on pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462#issuecomment-769876336


   Please  had my vote on fixing this issue...
   
   I am hoping to use this feature in a server which has a log4j2.properties configuration and a cannot alter the format.
   
   Regards
   
   JF


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] vy commented on a change in pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
vy commented on a change in pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462#discussion_r565372164



##########
File path: log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestProperties.java
##########
@@ -0,0 +1,71 @@
+/*
+ * 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;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.junit.LoggerContextSource;
+import org.apache.logging.log4j.junit.Named;
+import org.apache.logging.log4j.layout.template.json.util.JsonReader;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+@LoggerContextSource("log4j2-properties-with-arrays.properties")
+class JsonTemplateLayoutAdditionalFieldTestProperties {

Review comment:
       Rather than creating 3 separate test files, would you mind sticking to the old `JsonTemplateLayoutAdditionalFieldTest` class with the following nested tests, please?
   
   ```java
   class JsonTemplateLayoutAdditionalFieldTest {
   
       @Nested
       @LoggerContextSource("log4j2-properties-with-arrays.properties")
       class using_Properties extends AbstractTest {}
   
       @Nested
       @LoggerContextSource("log4j2-properties-with-arrays.xml")
       class using_XML extends AbstractTest {}
   
       @Nested
       @LoggerContextSource("log4j2-properties-with-arrays.yaml")
       class using_YAML extends AbstractTest {}
   
       private static class AbstractTest {
   
           @Test
           void test_additional_fields(
                   final LoggerContext loggerContext,
                   @Named("List") final ListAppender appender) {
               // ...
           }
   
       }
   
   }
   
   ```

##########
File path: log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayout.java
##########
@@ -624,7 +624,7 @@ private void validate() {
                 if (Strings.isBlank(value)) {
                     throw new IllegalArgumentException("blank value");
                 }
-                Objects.requireNonNull(type, "type");
+                Objects.requireNonNull(format, "type");

Review comment:
       `"type"` ⇨ `"format"`

##########
File path: log4j-layout-template-json/src/test/resources/log4j2-properties-with-arrays.yaml
##########
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more

Review comment:
       Would you rename this file to `additionalFieldEnrichedJsonTemplateLayoutLogging.yaml` and make sure it has the same structure as `additionalFieldEnrichedJsonTemplateLayoutLogging.xml`, please?

##########
File path: log4j-layout-template-json/src/test/resources/log4j2-properties-with-arrays.properties
##########
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more

Review comment:
       Would you rename this file to `additionalFieldEnrichedJsonTemplateLayoutLogging.properties` and make sure it has the same structure as `additionalFieldEnrichedJsonTemplateLayoutLogging.xml`, please?

##########
File path: log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/TemplateResolvers.java
##########
@@ -146,7 +146,7 @@ private static void appendAdditionalFields(
                     default: {
                         final String message = String.format(
                                 "unknown type %s for additional field: %s",

Review comment:
       `"unknown type` ⇨ `"unknown format`




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] Fabricc commented on a change in pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
Fabricc commented on a change in pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462#discussion_r567292483



##########
File path: log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutAdditionalFieldTestProperties.java
##########
@@ -0,0 +1,71 @@
+/*
+ * 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;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.junit.LoggerContextSource;
+import org.apache.logging.log4j.junit.Named;
+import org.apache.logging.log4j.layout.template.json.util.JsonReader;
+import org.apache.logging.log4j.test.appender.ListAppender;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+@LoggerContextSource("log4j2-properties-with-arrays.properties")
+class JsonTemplateLayoutAdditionalFieldTestProperties {

Review comment:
       Thank you for the feedback! I tried to stick to this example but I had some issues with the LoggerContextSource. It seems that every test gets only the first LoggerContextSource parsed. I tried to reconfigure the context and to programmatically change it but didn't work out. I also tried to use LoggerContextRule but that too didn't work as expect. Therefore I decided to create a common helper method and keep the classes separated but I have to admit, it doesn't look as concise as your suggestion. What do you think?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] vy commented on pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
vy commented on pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462#issuecomment-769884311


   > Please had my vote on fixing this issue...
   
   I will make sure this will be available in 2.14.1 which we will release in a couple of weeks.
   
   > I am hoping to use this feature in a server which has a log4j2.properties configuration and a cannot alter the format.
   > Currently using 2.14.0
   
   Note that you don't necessarily need `eventTemplateAdditionalFields` to introduce custom fields. You can also use `eventTemplate` to pass along the entire event template including the custom fields. I hope this might serve you as a temporary workaround.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [logging-log4j2] vy merged pull request #462: LOG4J2-2973 Rename EventTemplateAdditionalField#type (conflicting with properties file parser) to #format

Posted by GitBox <gi...@apache.org>.
vy merged pull request #462:
URL: https://github.com/apache/logging-log4j2/pull/462


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org