[ https://issues.apache.org/jira/browse/LOG4J2-3031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Caleb Cushing updated LOG4J2-3031: ---------------------------------- Description: I've had nothing but problems trying to get the code configuration working. I hate the `ConfigurationBuilder` API, it's easier to get wrong, but I couldn't get the "Modifying the Current Configuration after Initialization" API working. I wish that one would support all the same initial configuration use case (feature, I can write a separate ticket if you want). First, there's this question https://stackoverflow.com/q/65194471/206466 ```java private static void configureLog4j(Level rootLevel, Map<String, Level> levelMap) { var pattern = PatternLayout.newBuilder().withPattern( "%highlight{[%t] %-5level: %msg%n%throwable}\n" ).build(); var console = ConsoleAppender.createDefaultAppenderForLayout( pattern ); var config = LoggerContext.getContext().getConfiguration(); config.addAppender( console ); var root = config.getRootLogger(); for ( var appenderRef : root.getAppenderRefs() ) { root.removeAppender( appenderRef.getRef() ); } root.addAppender( console, rootLevel, null ); Configurator.setRootLevel( rootLevel ); Configurator.setLevel( levelMap ); Configurator.reconfigure(config); } ``` ended up using the other API and it worked, though I would much rather use this one, as it doesn't require stringy representations. Next, I tried setting up a `patternSelector` for the root appender in another project using the `ConfigurationBuilder`, I had no luck figuring that out, it simply seemed not to use what I put in. Is this maybe a bug? I can add code for what I tried here later. P.S. I want you to know about [this bug](https://github.com/gradle/gradle/issues/16366), but I doubt it belongs to log4j, but maybe you know something. Issue Type: Improvement (was: Bug) Summary: Doc/Bug?/Feature: code configuration better (was: code configuration woes) > Doc/Bug?/Feature: code configuration better > ------------------------------------------- > > Key: LOG4J2-3031 > URL: https://issues.apache.org/jira/browse/LOG4J2-3031 > Project: Log4j 2 > Issue Type: Improvement > Reporter: Caleb Cushing > Priority: Major > > I've had nothing but problems trying to get the code configuration working. I > hate the `ConfigurationBuilder` API, it's easier to get wrong, but I couldn't > get the "Modifying the Current Configuration after Initialization" API > working. I wish that one would support all the same initial configuration use > case (feature, I can write a separate ticket if you want). > First, there's this question https://stackoverflow.com/q/65194471/206466 > ```java > private static void configureLog4j(Level rootLevel, Map<String, Level> > levelMap) { > var pattern = PatternLayout.newBuilder().withPattern( "%highlight{[%t] > %-5level: %msg%n%throwable}\n" ).build(); > var console = ConsoleAppender.createDefaultAppenderForLayout( pattern ); > var config = LoggerContext.getContext().getConfiguration(); > config.addAppender( console ); > var root = config.getRootLogger(); > for ( var appenderRef : root.getAppenderRefs() ) { > root.removeAppender( appenderRef.getRef() ); > } > root.addAppender( console, rootLevel, null ); > Configurator.setRootLevel( rootLevel ); > Configurator.setLevel( levelMap ); > Configurator.reconfigure(config); > } > ``` > ended up using the other API and it worked, though I would much rather use > this one, as it doesn't require stringy representations. > Next, I tried setting up a `patternSelector` for the root appender in another > project using the `ConfigurationBuilder`, I had no luck figuring that out, it > simply seemed not to use what I put in. Is this maybe a bug? I can add code > for what I tried here later. > P.S. I want you to know about [this > bug](https://github.com/gradle/gradle/issues/16366), but I doubt it belongs > to log4j, but maybe you know something. -- This message was sent by Atlassian Jira (v8.3.4#803005)