[
https://issues.apache.org/jira/browse/LOG4J2-3406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17494330#comment-17494330
]
Ralph Goers edited comment on LOG4J2-3406 at 2/18/22, 2:54 AM:
---------------------------------------------------------------
The change Matt had implemented only addressed eliminating the name attribute
and I believe only on appenders. So
{code:java}
status = off
name = LoggerLevelAppenderTest
logger.core-config-properties.name =
org.apache.logging.log4j.core.config.properties
# whitespace added for testing trimming
logger.core-config-properties = INFO , first , second
appender.first.name = first
appender.first.type = List
appender.second.name = second
appender.second.type = List {code}
becomes
{code:java}
status = off
name = LoggerLevelAppenderTest
logger.core-config-properties.name =
org.apache.logging.log4j.core.config.properties
# whitespace added for testing trimming
logger.core-config-properties = INFO , first , second
appender.first.type = List
appender.second.type = List {code}
In other words, all it did was eliminate the redundant declaration. It may be
that all the implementation did was notice that there was no name attribute and
added one based on the name field. Of course, you would want to disallow
periods (".") in the name to avoid a parsing nightmare.
was (Author: [email protected]):
The change Matt had implemented only addressed eliminating the name attribute
and I believe only on appenders. So
{code:java}
status = off
name = LoggerLevelAppenderTest
logger.core-config-properties.name =
org.apache.logging.log4j.core.config.properties
# whitespace added for testing trimming
logger.core-config-properties = INFO , first , second
appender.first.name = first
appender.first.type = List
appender.second.name = second
appender.second.type = List {code}
becomes
{code:java}
status = off
name = LoggerLevelAppenderTest
logger.core-config-properties.name =
org.apache.logging.log4j.core.config.properties
# whitespace added for testing trimming
logger.core-config-properties = INFO , first , second
appender.first.type = List
appender.second.type = List {code}
In other words, all it did was eliminate the redundant declaration.
> Implicit component names in the properties format
> -------------------------------------------------
>
> Key: LOG4J2-3406
> URL: https://issues.apache.org/jira/browse/LOG4J2-3406
> Project: Log4j 2
> Issue Type: Improvement
> Components: Configurators
> Affects Versions: 2.17.1
> Reporter: Piotr P. Karwasz
> Priority: Minor
>
> The properties configuration syntax requires a lot of additional properties
> to specify a component's name or type. On the other hand a lot of random
> identifiers must be generated to provide unique prefixes to each component in
> a list.
> I open this ticket to discuss the possibility of extending the properties
> format and use the unique identifier as default component's name. E.g. as an
> alternative to:
> {noformat}
> appender.<1234>.type = Console
> appender.<1234>.name = STDOUT
> {noformat}
> we might write:
> {noformat}
> appender.STDOUT.type = Console
> {noformat}
> This is already implemented for the {{<Properties>}} and {{<CustomLevels>}}
> elements, where the identifier *is* the name of the property.
> Given that [~rgoers]'s solution to LOG4J2-3341 introduced a real property
> {{levelAndRefs}} for the logger components, we might also allow identifiers
> containing dots for loggers (if the property ends in {{{}.levelAndRefs{}}}).
> To find the identifiers of all loggers we might use the following rule:
> * if there is a property {{logger.foo}} (these were ignored in 2.17.1),
> {{foo}} is an identifier and the property is equivalent to
> {{{}logger.foo.levelAndRefs{}}},
> * if there is a property {{{}logger.foo.name{}}}, {{foo}} is an identifier
> (this was the unique rule in 2.17.1),
> * if there is a property {{logger.foo.bar.baz.levelAndRefs}} or
> {{{}logger.foo.bar.baz.level{}}}, then {{foo.bar.baz}} is an identifier,
--
This message was sent by Atlassian Jira
(v8.20.1#820001)