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);
}
-}
+}
+