Piotr P. Karwasz created LOG4J2-3406:
----------------------------------------

             Summary: 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


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>}} element, where the 
identifier *is* the name of the property.

Given that [~ggregory]  the 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}}, then 
{{foo.bar.baz}} is an identifier,




--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to