The default context selector is ClassLoaderContextSelector which creates a 
LoggerContext for each ClassLoader. This means that if you were to start and 
stop a bundle the Logging environment for that bundle should clean up.  When 
you use the BasicContextSelector there is only a single LoggerContext for the 
whole application. As to which is correct for an OSGi environment I couldn’t 
say.  If we need a context selector specifically for OSGi environments that can 
certainly be implemented, but we would have to know what the expected behavior 
is. Of course, you can always implement it and submit it as a patch to a Jira 
issue.

Ralph

> On Jul 25, 2018, at 9:44 AM, Leon Finker <leon...@gmail.com> wrote:
> 
> Hi,
> 
> Use case: provide log4j2 logging in Felix OSGi application. Nothing OSGi 
> specific as far as logging concerned. Simply need to log all logging events 
> to configured log file for the application. Using async logging.
> 
> If we run log4j2 (any current version) with default context selector, then we 
> noticed that each OSGi bundle creates a separate AsyncLoggerConfig* thread 
> with its own Disruptor, RingBuffer, etc. We have about 30+ bundles. Only by 
> setting Log4jContextSelector to 
> org.apache.logging.log4j.core.selector.BasicContextSelector, this is 
> prevented and one AsyncLoggerConfig/Disruptor/RingBuffer is created.
> 
> Is this expected?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-user-h...@logging.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to