You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I create a BuiltConfiguration that defines a Configuration 'name' (i.e. "FooBar") and no loggers, the AbstractConfigurat#doConfigure() method calls the setToDefault() method for example if the following conditions are met:
no loggers are defined
no root logger is defined
For example,
if (!setLoggers) {
LOGGER.warn("No Loggers were configured, using default. Is the Loggers element missing?");
setToDefault();
return;
}
The first thing the setToDefault method does is clear the given name and replace it with a default.
It should however (IMHO) be a perfectly valid scenario to create a configuration with no content but with a custom name - specifically where I discovered this in testing. But maybe I want to only define global filters and otherwise rely on default behaviour.
In my opinion the name should only be set here if no name has yet been set.
Generally it should be OK to set a configuration with no loggers and no root logger. Consider a CompositeConfiguration named "FooBar" with an initially empty BuiltConfiguration. Some runtime event might create appenders and loggers dynamically (ie. for a new service). But it is no longer possible to lookup that configuration by name because a default has been applied.
Log4j 2.24.3 - AbstractConfiguration
If I create a BuiltConfiguration that defines a Configuration 'name' (i.e. "FooBar") and no loggers, the
AbstractConfigurat#doConfigure()
method calls thesetToDefault()
method for example if the following conditions are met:For example,
The first thing the
setToDefault
method does is clear the given name and replace it with a default.It should however (IMHO) be a perfectly valid scenario to create a configuration with no content but with a custom name - specifically where I discovered this in testing. But maybe I want to only define global filters and otherwise rely on default behaviour.
In my opinion the name should only be set here if no name has yet been set.
Generally it should be OK to set a configuration with no loggers and no root logger. Consider a CompositeConfiguration named "FooBar" with an initially empty BuiltConfiguration. Some runtime event might create appenders and loggers dynamically (ie. for a new service). But it is no longer possible to lookup that configuration by name because a default has been applied.
NOTE: The referenced bug/fix (https://issues.apache.org/jira/browse/LOG4J2-1176) doesn't seem to make any mention of the name being a problem.
The text was updated successfully, but these errors were encountered: