Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import javax.xml.transform.stream.StreamSource;
import org.apache.logging.log4j.core.config.ConfigurationException;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.config.builder.impl.DefaultConfigurationBuilder;
import org.apache.logging.log4j.core.tools.BasicCommandLineArguments;
import org.apache.logging.log4j.core.tools.picocli.CommandLine;
Expand Down Expand Up @@ -160,8 +159,7 @@ private Log4j1ConfigurationConverter(final CommandLineArguments cla) {
}

protected void convert(final InputStream input, final OutputStream output) throws IOException {
final ConfigurationBuilder<BuiltConfiguration> builder =
new Log4j1ConfigurationParser().buildConfigurationBuilder(input);
final ConfigurationBuilder<?> builder = new Log4j1ConfigurationParser().buildConfigurationBuilder(input);
builder.writeXmlConfiguration(output);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;

/**
* Experimental ConfigurationFactory for Log4j 1.2 properties configuration files.
Expand All @@ -40,7 +39,7 @@ public class Log4j1ConfigurationFactory extends ConfigurationFactory {

@Override
public Configuration getConfiguration(final LoggerContext loggerContext, final ConfigurationSource source) {
final ConfigurationBuilder<BuiltConfiguration> builder;
final ConfigurationBuilder<?> builder;
try (final InputStream configStream = source.getInputStream()) {
builder = new Log4j1ConfigurationParser().buildConfigurationBuilder(configStream);
} catch (final IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.LoggerComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.PropertyComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.status.StatusLogger;
Expand Down Expand Up @@ -108,7 +109,7 @@ public ConfigurationBuilder<BuiltConfiguration> buildConfigurationBuilder(final
if (threshold != null) {
final Level level = OptionConverter.convertLevel(threshold.trim(), Level.ALL);
builder.add(builder.newFilter("ThresholdFilter", Result.NEUTRAL, Result.DENY)
.addAttribute("level", level));
.setAttribute("level", level));
}
// Root
buildRootLogger(getLog4jValue(ROOTCATEGORY));
Expand All @@ -134,7 +135,9 @@ private void buildProperties() {
for (final Map.Entry<Object, Object> entry : new TreeMap<>(properties).entrySet()) {
final String key = entry.getKey().toString();
if (!key.startsWith("log4j.") && !key.equals(ROOTCATEGORY) && !key.equals(ROOTLOGGER)) {
builder.addProperty(key, Objects.toString(entry.getValue(), Strings.EMPTY));
PropertyComponentBuilder propertyComponentBuilder =
builder.newProperty(key, Objects.toString(entry.getValue(), Strings.EMPTY));
builder.add(propertyComponentBuilder);
}
}
}
Expand Down Expand Up @@ -204,7 +207,7 @@ private void buildConsoleAppender(final String appenderName) {
target = null;
}
if (target != null) {
appenderBuilder.addAttribute("target", target);
appenderBuilder.setAttribute("target", target);
}
}
buildAttribute(appenderName, appenderBuilder, "Follow", "follow");
Expand Down Expand Up @@ -236,13 +239,13 @@ private void buildDailyRollingFileAppender(final String appenderName) {
buildFileAppender(appenderName, appenderBuilder);
final String fileName = getLog4jAppenderValue(appenderName, "File");
final String datePattern = getLog4jAppenderValue(appenderName, "DatePattern", ".yyyy-MM-dd");
appenderBuilder.addAttribute("filePattern", fileName + "%d{" + datePattern + "}");
appenderBuilder.setAttribute("filePattern", fileName + "%d{" + datePattern + "}");
final ComponentBuilder<?> triggeringPolicy = builder.newComponent("Policies")
.addComponent(builder.newComponent("TimeBasedTriggeringPolicy").addAttribute("modulate", true));
.addComponent(builder.newComponent("TimeBasedTriggeringPolicy").setAttribute("modulate", true));
appenderBuilder.addComponent(triggeringPolicy);
appenderBuilder.addComponent(builder.newComponent("DefaultRolloverStrategy")
.addAttribute("max", Integer.MAX_VALUE)
.addAttribute("fileIndex", "min"));
.setAttribute("max", Integer.MAX_VALUE)
.setAttribute("fileIndex", "min"));
builder.add(appenderBuilder);
}

Expand All @@ -251,16 +254,16 @@ private void buildRollingFileAppender(final String appenderName) {
builder.newAppender(appenderName, RollingFileAppender.PLUGIN_NAME);
buildFileAppender(appenderName, appenderBuilder);
final String fileName = getLog4jAppenderValue(appenderName, "File");
appenderBuilder.addAttribute("filePattern", fileName + ".%i");
appenderBuilder.setAttribute("filePattern", fileName + ".%i");
final String maxFileSizeString = getLog4jAppenderValue(appenderName, "MaxFileSize", "10485760");
final String maxBackupIndexString = getLog4jAppenderValue(appenderName, "MaxBackupIndex", "1");
final ComponentBuilder<?> triggeringPolicy = builder.newComponent("Policies")
.addComponent(
builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size", maxFileSizeString));
builder.newComponent("SizeBasedTriggeringPolicy").setAttribute("size", maxFileSizeString));
appenderBuilder.addComponent(triggeringPolicy);
appenderBuilder.addComponent(builder.newComponent("DefaultRolloverStrategy")
.addAttribute("max", maxBackupIndexString)
.addAttribute("fileIndex", "min"));
.setAttribute("max", maxBackupIndexString)
.setAttribute("fileIndex", "min"));
builder.add(appenderBuilder);
}

Expand All @@ -271,7 +274,7 @@ private void buildAttribute(
final String targetAttributeName) {
final String attributeValue = getLog4jAppenderValue(componentName, sourceAttributeName);
if (attributeValue != null) {
componentBuilder.addAttribute(targetAttributeName, attributeValue);
componentBuilder.setAttribute(targetAttributeName, attributeValue);
}
}

Expand All @@ -282,7 +285,7 @@ private void buildMandatoryAttribute(
final String targetAttributeName) {
final String attributeValue = getLog4jAppenderValue(componentName, sourceAttributeName);
if (attributeValue != null) {
componentBuilder.addAttribute(targetAttributeName, attributeValue);
componentBuilder.setAttribute(targetAttributeName, attributeValue);
} else {
reportWarning("Missing " + sourceAttributeName + " for " + componentName);
}
Expand Down Expand Up @@ -358,19 +361,19 @@ private void buildAppenderLayout(final String name, final AppenderComponentBuild
}
case "org.apache.log4j.HTMLLayout": {
final LayoutComponentBuilder htmlLayout = builder.newLayout("HtmlLayout");
htmlLayout.addAttribute("title", getLog4jAppenderValue(name, "layout.Title", "Log4J Log Messages"));
htmlLayout.addAttribute(
htmlLayout.setAttribute("title", getLog4jAppenderValue(name, "layout.Title", "Log4J Log Messages"));
htmlLayout.setAttribute(
"locationInfo",
Boolean.parseBoolean(getLog4jAppenderValue(name, "layout.LocationInfo", FALSE)));
appenderBuilder.add(htmlLayout);
break;
}
case "org.apache.log4j.xml.XMLLayout": {
final LayoutComponentBuilder xmlLayout = builder.newLayout("Log4j1XmlLayout");
xmlLayout.addAttribute(
xmlLayout.setAttribute(
"locationInfo",
Boolean.parseBoolean(getLog4jAppenderValue(name, "layout.LocationInfo", FALSE)));
xmlLayout.addAttribute(
xmlLayout.setAttribute(
"properties",
Boolean.parseBoolean(getLog4jAppenderValue(name, "layout.Properties", FALSE)));
appenderBuilder.add(xmlLayout);
Expand All @@ -385,7 +388,7 @@ private void buildAppenderLayout(final String name, final AppenderComponentBuild
private LayoutComponentBuilder newPatternLayout(final String pattern) {
final LayoutComponentBuilder layoutBuilder = builder.newLayout("PatternLayout");
if (pattern != null) {
layoutBuilder.addAttribute("pattern", pattern);
layoutBuilder.setAttribute("pattern", pattern);
}
return layoutBuilder;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public static void fuzzerTestOneInput(final FuzzedDataProvider dataProvider) {
createLoggerContext(loggerContextName, EncodingAppender.PLUGIN_NAME, configBuilder -> configBuilder
.newLayout("PatternLayout")
// Enforce using a single message-based converter, i.e., `MessagePatternConverter`
.addAttribute("pattern", "%m"))) {
.setAttribute("pattern", "%m"))) {
final ExtendedLogger logger = loggerContext.getLogger(PatternLayoutFuzzer.class);
final LoggerFacade loggerFacade = new Log4jLoggerFacade(logger);
fuzzLogger(loggerFacade, dataProvider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.test.appender.ListAppender;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -88,10 +87,9 @@ private static LoggerContext createLoggerContext(

@SuppressWarnings("SameParameterValue")
private static Configuration createConfiguration(final String appenderName) {
final ConfigurationBuilder<BuiltConfiguration> configBuilder =
ConfigurationBuilderFactory.newConfigurationBuilder();
final ConfigurationBuilder<?> configBuilder = ConfigurationBuilderFactory.newConfigurationBuilder();
final LayoutComponentBuilder layoutComponentBuilder =
configBuilder.newLayout("PatternLayout").addAttribute("pattern", "%m");
configBuilder.newLayout("PatternLayout").setAttribute("pattern", "%m");
final AppenderComponentBuilder appenderComponentBuilder =
configBuilder.newAppender(appenderName, "List").add(layoutComponentBuilder);
final RootLoggerComponentBuilder loggerComponentBuilder =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@
import org.apache.logging.log4j.core.config.Configurator;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.core.util.Builder;
import org.junit.jupiter.api.Test;

class ReconfigureAppenderTest {
Expand Down Expand Up @@ -127,8 +125,7 @@ private void removeAppender() {
}

private void createAndAddAppender() {
final ConfigurationBuilder<BuiltConfiguration> config_builder =
ConfigurationBuilderFactory.newConfigurationBuilder();
final ConfigurationBuilder<?> config_builder = ConfigurationBuilderFactory.newConfigurationBuilder();

// All loggers must have a root logger. The default root logger logs ERRORs to the console.
// Override this with a root logger that does not log anywhere as we leave it up the
Expand All @@ -141,10 +138,10 @@ private void createAndAddAppender() {
// Retrieve the logger.
final Logger logger = (Logger) LogManager.getLogger(this.getClass());

final Builder pattern_builder =
final PatternLayout.Builder pattern_builder =
PatternLayout.newBuilder().withPattern("[%d{dd-MM-yy HH:mm:ss}] %p %m %throwable %n");

final PatternLayout pattern_layout = (PatternLayout) pattern_builder.build();
final PatternLayout pattern_layout = pattern_builder.build();

appender = RollingFileAppender.newBuilder()
.withLayout(pattern_layout)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
import org.apache.logging.log4j.core.config.builder.api.ComponentBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
import org.apache.logging.log4j.core.net.TcpSocketManager;
import org.apache.logging.log4j.core.net.TcpSocketManager.HostResolver;
import org.apache.logging.log4j.core.net.ssl.SslKeyStoreConstants;
Expand Down Expand Up @@ -219,24 +218,21 @@ void key_store_changes_should_be_detected_at_reconfigure(
final int server1Port = server1.getServerSocket().getLocalPort();

// Create the configuration transformer to add the `<Ssl>`, `<KeyStore>`, and `<TrustStore>` elements
final BiFunction<
ConfigurationBuilder<BuiltConfiguration>,
AppenderComponentBuilder,
AppenderComponentBuilder>
final BiFunction<ConfigurationBuilder<?>, AppenderComponentBuilder, AppenderComponentBuilder>
appenderComponentBuilderTransformer = (configBuilder, appenderComponentBuilder) -> {
final ComponentBuilder<?> keyStoreComponentBuilder = configBuilder
.newComponent("KeyStore")
.addAttribute("type", keyStoreType)
.addAttribute("location", keyStoreFilePath.toString())
.addAttribute("passwordFile", keyStorePasswordFilePath);
.setAttribute("type", keyStoreType)
.setAttribute("location", keyStoreFilePath.toString())
.setAttribute("passwordFile", keyStorePasswordFilePath);
final ComponentBuilder<?> trustStoreComponentBuilder = configBuilder
.newComponent("TrustStore")
.addAttribute("type", trustStoreType)
.addAttribute("location", trustStoreFilePath.toString())
.addAttribute("passwordFile", trustStorePasswordFilePath);
.setAttribute("type", trustStoreType)
.setAttribute("location", trustStoreFilePath.toString())
.setAttribute("passwordFile", trustStorePasswordFilePath);
return appenderComponentBuilder.addComponent(configBuilder
.newComponent("Ssl")
.addAttribute("protocol", "TLS")
.setAttribute("protocol", "TLS")
.addComponent(keyStoreComponentBuilder)
.addComponent(trustStoreComponentBuilder));
};
Expand Down Expand Up @@ -301,27 +297,23 @@ private static Configuration createConfiguration(
final String host,
final int port,
@Nullable
final BiFunction<
ConfigurationBuilder<BuiltConfiguration>,
AppenderComponentBuilder,
AppenderComponentBuilder>
final BiFunction<ConfigurationBuilder<?>, AppenderComponentBuilder, AppenderComponentBuilder>
appenderComponentBuilderTransformer) {

// Create the configuration builder
final ConfigurationBuilder<BuiltConfiguration> configBuilder =
ConfigurationBuilderFactory.newConfigurationBuilder()
.setStatusLevel(Level.ERROR)
.setConfigurationName(SocketAppenderReconnectTest.class.getSimpleName());
final ConfigurationBuilder<?> configBuilder = ConfigurationBuilderFactory.newConfigurationBuilder()
.setStatusLevel(Level.ERROR)
.setConfigurationName(SocketAppenderReconnectTest.class.getSimpleName());

// Create the appender configuration
final AppenderComponentBuilder appenderComponentBuilder = configBuilder
.newAppender(APPENDER_NAME, "Socket")
.addAttribute("host", host)
.addAttribute("port", port)
.addAttribute("ignoreExceptions", false)
.addAttribute("reconnectionDelayMillis", 10)
.addAttribute("immediateFlush", true)
.add(configBuilder.newLayout("PatternLayout").addAttribute("pattern", "%m%n"));
.setAttribute("host", host)
.setAttribute("port", port)
.setAttribute("ignoreExceptions", false)
.setAttribute("reconnectionDelayMillis", 10)
.setAttribute("immediateFlush", true)
.add(configBuilder.newLayout("PatternLayout").setAttribute("pattern", "%m%n"));
final AppenderComponentBuilder transformedAppenderComponentBuilder = appenderComponentBuilderTransformer != null
? appenderComponentBuilderTransformer.apply(configBuilder, appenderComponentBuilder)
: appenderComponentBuilder;
Expand Down Expand Up @@ -406,7 +398,7 @@ private static void verifyLoggingFailure(
// Verify the failure
for (int i = 0; i < retryCount; i++) {
try {
logger.info("should fail #" + i);
logger.info("should fail #{}", i);
fail("should have failed #" + i);
} catch (final AppenderLoggingException ignored) {
assertThat(errorHandler.getBuffer()).hasSize(2 * (i + 1));
Expand Down
Loading