Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-3406

Implicit component names in the properties format

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.17.1
    • None
    • Configurators
    • None

    Description

      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:

      appender.<1234>.type = Console
      appender.<1234>.name = STDOUT
      

      we might write:

      appender.STDOUT.type = Console
      

      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,

      Attachments

        Activity

          People

            Unassigned Unassigned
            pkarwasz Piotr Karwasz
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: