From df492f37f60d77ec77913d224f5fd029d82494ed Mon Sep 17 00:00:00 2001 From: fred eisele Date: Tue, 8 Mar 2022 12:06:48 -0600 Subject: [PATCH 1/4] Update documentation as mentioned in https://issues.apache.org/jira/browse/LOG4J2-3429 Also, corrected typo in builder method name 'withtFilter' -> 'withFilter' --- .../log4j/core/config/LoggerConfig.java | 4 +- src/site/xdoc/manual/customconfig.xml | 65 ++++++++++++++----- 2 files changed, 49 insertions(+), 20 deletions(-) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index cb76aed4ea4..9d79cb70f4c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -214,7 +214,7 @@ public Filter getFilter() { return filter; } - public B withtFilter(Filter filter) { + public B withFilter(Filter filter) { this.filter = filter; return asBuilder(); } @@ -884,7 +884,7 @@ public Filter getFilter() { return filter; } - public B withtFilter(Filter filter) { + public B withFilter(Filter filter) { this.filter = filter; return asBuilder(); } diff --git a/src/site/xdoc/manual/customconfig.xml b/src/site/xdoc/manual/customconfig.xml index 0564e397399..422cf18f790 100644 --- a/src/site/xdoc/manual/customconfig.xml +++ b/src/site/xdoc/manual/customconfig.xml @@ -223,17 +223,17 @@ LoggerContext ctx = Configurator.initialize(builder.build());

The easiest way to achieve this is to extend one of the standard Configuration classes - (XMLConfiguration, JSONConfiguration) and then create a new ConfigurationFactory for the extended class. + (XmlConfiguration, JSONConfiguration) and then create a new ConfigurationFactory for the extended class. After the standard configuration completes the custom configuration can be added to it.

- The example below shows how to extend XMLConfiguration to manually add an Appender and a LoggerConfig + The example below shows how to extend XmlConfiguration to manually add an Appender and a LoggerConfig to the configuration.

-@Plugin(name = "MyXMLConfigurationFactory", category = "ConfigurationFactory")
+@Plugin(name = "MyXmlConfigurationFactory", category = "ConfigurationFactory")
 @Order(10)
-public class MyXMLConfigurationFactory extends ConfigurationFactory {
+public class MyXmlConfigurationFactory extends ConfigurationFactory {
 
     /**
      * Valid file extensions for XML files.
@@ -245,8 +245,9 @@ public class MyXMLConfigurationFactory extends ConfigurationFactory {
      * @param source The InputSource.
      * @return The Configuration.
      */
-    public Configuration getConfiguration(InputSource source) {
-        return new MyXMLConfiguration(source, configFile);
+    @Override
+    public Configuration getConfiguration(LoggerContext loggerContext, ConfigurationSource source) {
+        return new MyXmlConfiguration(loggerContext, source);
     }
 
     /**
@@ -256,29 +257,57 @@ public class MyXMLConfigurationFactory extends ConfigurationFactory {
     public String[] getSupportedTypes() {
         return SUFFIXES;
     }
+
 }
+            
+ +
+public class MyXmlConfiguration extends XmlConfiguration {
 
-public class MyXMLConfiguration extends XMLConfiguration {
-    public MyXMLConfiguration(final ConfigurationFactory.ConfigurationSource configSource) {
-      super(configSource);
+    public MyXmlConfiguration(LoggerContext loggerContext, ConfigurationSource configSource) {
+    super(loggerContext, configSource);
     }
 
     @Override
     protected void doConfigure() {
         super.doConfigure();
         final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
-        final Configuration config = context.getConfiguration();
+        final Configuration config = ctx.getConfiguration();
         final Layout layout = PatternLayout.createDefaultLayout(config);
-        final Appender appender = FileAppender.createAppender("target/test.log", "false", "false", "File", "true",
-              "false", "false", "4000", layout, null, "false", null, config);
-        appender.start();
-        addAppender(appender);
-        LoggerConfig loggerConfig = LoggerConfig.createLogger("false", "info", "org.apache.logging.log4j",
-              "true", refs, null, config, null );
-        loggerConfig.addAppender(appender, null, null);
+        final FileAppender fileAppender = FileAppender.newBuilder()
+            .withFileName("target/test.log")
+            .withAppend(false)
+            .withLocking(false)
+            .setName("File")
+            .setImmediateFlush(true)
+            .setIgnoreExceptions(false)
+            .setBufferedIo(false)
+            .setBufferSize(4000)
+            .setLayout(layout)
+            .setFilter(null)
+            .withAdvertise(false)
+            .withAdvertiseUri(null)
+            .setConfiguration(config)
+            .build();
+        fileAppender.start();
+        addAppender(fileAppender);
+
+        AppenderRef[] refs = new AppenderRef[] {AppenderRef.createAppenderRef("File", null, null)};
+        LoggerConfig loggerConfig = LoggerConfig.newBuilder()
+            .withAdditivity(false)
+            .withLevel(Level.INFO)
+            .withIncludeLocation("true")
+            .withRefs(refs)
+            .withProperties(null)
+            .withConfig(config)
+            .withFilter(null)
+            .build();
+
+        loggerConfig.addAppender(fileAppender, null, null);
         addLogger("org.apache.logging.log4j", loggerConfig);
     }
-}
+} + From 03d34df91faf1964e6d66ea672ca85261561e53c Mon Sep 17 00:00:00 2001 From: fred eisele Date: Wed, 9 Mar 2022 13:47:02 -0600 Subject: [PATCH 2/4] corrected typo in builder method name 'withtFilter' -> 'withFilter' --- .../apache/logging/log4j/core/config/LoggerConfig.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index 9d79cb70f4c..d300f0d6c68 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -214,6 +214,15 @@ public Filter getFilter() { return filter; } + /** + * @deprecated Use {@link #withFilter()} instead which performs the same function. + */ + @Deprecated + public B withtFilter(Filter filter) { + this.filter = filter; + return asBuilder(); + } + public B withFilter(Filter filter) { this.filter = filter; return asBuilder(); From 387d65587db2fcb16cf182bdf84f9ec796606f4f Mon Sep 17 00:00:00 2001 From: fred eisele Date: Wed, 9 Mar 2022 13:49:01 -0600 Subject: [PATCH 3/4] corrected typo in builder method name 'withtFilter' -> 'withFilter' --- .../java/org/apache/logging/log4j/core/config/LoggerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index d300f0d6c68..6bdd95964ab 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -215,7 +215,7 @@ public Filter getFilter() { } /** - * @deprecated Use {@link #withFilter()} instead which performs the same function. + * @deprecated Use {@link #withFilter(Filter)} instead which performs the same function. */ @Deprecated public B withtFilter(Filter filter) { From bb62e8c3fae7eb76125e2810016603b9aa829429 Mon Sep 17 00:00:00 2001 From: fred eisele Date: Wed, 9 Mar 2022 13:55:40 -0600 Subject: [PATCH 4/4] corrected typo in builder methods named 'withtFilter' -> 'withFilter' --- .../apache/logging/log4j/core/config/LoggerConfig.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index 6bdd95964ab..7a4c816796d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -893,6 +893,15 @@ public Filter getFilter() { return filter; } + /** + * @deprecated Use {@link #withFilter(Filter)} instead which performs the same function. + */ + @Deprecated + public B withtFilter(Filter filter) { + this.filter = filter; + return asBuilder(); + } + public B withFilter(Filter filter) { this.filter = filter; return asBuilder();