Uploaded image for project: 'logback'
  1. logback
  2. LOGBACK-1446

Make property references escapable

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.2.3, 1.3.0-alpha4
    • Fix Version/s: None
    • Component/s: logback-core
    • Labels:
      None

      Description

      As you requested in my PR I created an account and issue for this matter.
      Short description from the pull request for searchability in JIRA:

      Currently it's not possible to escape strings like ${some.property} in the logback.xml.
      This is escpecially problematic when trying to use a replacement command with named groups in the appender pattern.
      Therefore something like this will attempt to insert a property value instead of the named group:
      %replace(%msg){'(?<namedGroup>somestuffhere)', '${namedGroup}'}
      I kept this example as simple (stupid) as possible for demonstration purposes since real world patterns where you need named groups often are
      pretty complex.

      As stated in my solution the implementation could be improved. Currently each of the characters $, {, : and } are affecting the token state even if the string doesn't represent a property reference, such as {test} or test:test. Maybe I'm missing something and the curly braces have a special meaning even without a preceding dollar sign, but otherwise the tokenizer could be more strict, so escaping would only need a single \ in front of the dollar sign (like \${escaped}).

        Attachments

          Activity

            People

            • Assignee:
              logback-dev Logback dev list
              Reporter:
              Neon Neon
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: