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..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 @@ -214,11 +214,20 @@ 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(); + } + @Override public LoggerConfig build() { final String name = loggerName.equals(ROOT) ? Strings.EMPTY : loggerName; @@ -884,11 +893,20 @@ 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(); + } + @Override public LoggerConfig build() { LevelAndRefs container = LoggerConfig.getLevelAndRefs(level, refs, levelAndRefs, config); 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);
     }
-}
+} +