Hello log4j team,

I have a use case where I need to create different loggers with different
attributes at run time.

For example, let's say that:
1) at startup I want 1 logger with 1 syslog appender
2) after a while, I want 1 logger with 1 file appender
3) after a while, I want 1 logger with 1 syslog and 1 file appender

What would be more suitable in this case?
a) programmatically modifying the current configuration after initialization
b) or creating a new configuration using the ConfigurationBuilder and
initializing a new LoggerContext for the new configuration using
Configurator.initialize()?

Personally, I find the 2nd approach better as it provides a cleaner API to
programmatically create the new loggers. But by doing so, I will create
multiple LoggerContexts. Is it valid to have multiple LoggerContexts? If
yes, what is the recommended way of accessing the a LoggerContext? I am
aware about the ContextSelector class but I am not sure if it is suitable
for my needs, as all the LoggerContexts will be created using the same
classloader.

Thank you very much for your valuable feedback,
Apostolis

Reply via email to