[ https://issues.apache.org/jira/browse/LOG4J2-1794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Simon Cooper updated LOG4J2-1794: --------------------------------- Description: Sample code: {code} private static final Logger Log = LogManager.getLogger(); public static void main(String[] args) throws Throwable { ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder(); builder.setConfigurationName("Test"); AppenderComponentBuilder console = builder.newAppender("Stdout", "Console") .add(builder.newLayout("PatternLayout").addAttribute("pattern", "Format: %m%n")); builder.add(console); builder.add(builder.newRootLogger(Level.INFO).add(builder.newAppenderRef("Stdout"))); Configurator.initialize(builder.build()); Configurator.setRootLevel(Level.INFO); LogManager.getLogger().info("Log!"); }{code} The log statement at the bottom doesn't use the specified format, it uses the existing format. If the {{private static final Log = ...}} statement at the top is commented out, the log *does* use the reconfigured format. Reconfiguring the log settings should affect any loggers already created. Waiting until the logging is configured before creating any loggers is not always feasible - for example, if your entrypoint class has a static {{Logger}} and the reconfiguration is being done by a library you're calling into. was: Sample code: {code} private static final Logger Log = LogManager.getLogger(); public static void main(String[] args) throws Throwable { ConfigurationBuilder<BuiltConfiguration> builder = ConfigurationBuilderFactory.newConfigurationBuilder(); builder.setConfigurationName("Test"); AppenderComponentBuilder console = builder.newAppender("Stdout", "Console") .addAttribute("follow", true) .add(builder.newLayout("PatternLayout").addAttribute("pattern", "Format: %m%n")); builder.add(console); builder.add(builder.newRootLogger(Level.INFO).add(builder.newAppenderRef("Stdout"))); Configurator.initialize(builder.build()); Configurator.setRootLevel(Level.INFO); LogManager.getLogger().info("Log!"); }{code} The log statement at the bottom doesn't use the specified format, it uses the existing format. If the {{private static final Log = ...}} statement at the top is commented out, the log *does* use the reconfigured format. Reconfiguring the log settings should affect any loggers already created. Waiting until the logging is configured before creating any loggers is not always feasible - for example, if your entrypoint class has a static {{Logger}} and the reconfiguration is being done by a library you're calling into. > Programmatic reconfiguration doesn't affect existing loggers > ------------------------------------------------------------ > > Key: LOG4J2-1794 > URL: https://issues.apache.org/jira/browse/LOG4J2-1794 > Project: Log4j 2 > Issue Type: Bug > Components: Configurators > Affects Versions: 2.7 > Reporter: Simon Cooper > > Sample code: > {code} private static final Logger Log = LogManager.getLogger(); > public static void main(String[] args) throws Throwable { > ConfigurationBuilder<BuiltConfiguration> builder = > ConfigurationBuilderFactory.newConfigurationBuilder(); > builder.setConfigurationName("Test"); > AppenderComponentBuilder console = builder.newAppender("Stdout", > "Console") > > .add(builder.newLayout("PatternLayout").addAttribute("pattern", "Format: > %m%n")); > builder.add(console); > > builder.add(builder.newRootLogger(Level.INFO).add(builder.newAppenderRef("Stdout"))); > Configurator.initialize(builder.build()); > Configurator.setRootLevel(Level.INFO); > LogManager.getLogger().info("Log!"); > }{code} > The log statement at the bottom doesn't use the specified format, it uses the > existing format. If the {{private static final Log = ...}} statement at the > top is commented out, the log *does* use the reconfigured format. > Reconfiguring the log settings should affect any loggers already created. > Waiting until the logging is configured before creating any loggers is not > always feasible - for example, if your entrypoint class has a static > {{Logger}} and the reconfiguration is being done by a library you're calling > into. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org