GitHub user ppkarwasz added a comment to the discussion: Help with migrating 
from log4j to log4j2 (we also use a slf4j -> log4j)

> ```java
> ctx.addPropertyChangeListener(
>           evt -> {
>             if ("config".equals(evt.getPropertyName())) {
>               synchronized (lock) {
>                 enableLogging();
>               }
>             }
>           });
> ```

The `PropertyChangeListener` is called each time `updateLoggers()` is called, 
but your listener also calls `updateLoggers()`, so I would expect a stack 
overflow to happen here.

> For number 1 do you mean create a xml file for sshlog to define things? 
> Wouldn't reconfigure just get rid of that, because we use log4j2.xml?

Yes, calling `LoggerContext.reconfigure()` is only able to load a single 
configuration at a time, but you can create a merged configuration 
programmatically:

```java
ConfigurationFactory configFactory = ConfigurationFactory.getInstance();
AbstractConfiguration commonConfig = (AbstractConfiguration) 
        configFactory.getConfiguration(ctx, null, 
URI.create("classpath:log4j2-common.xml")); 
AbstractConfiguration sshConfig = (AbstractConfiguration) 
        configFactory.getConfiguration(ctxl, null, 
URI.create("classpath:log4j2-ssh.xml")); 
ctx.reconfigure(new CompositeConfiguration(Arrays.asList(commonConfig, 
sshConfig)));
```

GitHub link: 
https://github.com/apache/logging-log4j2/discussions/3914#discussioncomment-14332898

----
This is an automatically sent email for dev@logging.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@logging.apache.org

Reply via email to