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

Expand SystemPropertiesLookup syntax

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Workaround
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Lookups
    • Labels:
      None

      Description

      I've been using a modified version of SystemPropertiesLookup in my project. Maybe it could be part of the library.

      The idea is to allow a series of property keys to be specified. If one of the properties is present, then it is used. If none are present, then the default value is used. For example:

      <Logger name="com.myapp.dao" level="${sys:myapp.log.level|myapp.log.level.dao|warn}"/>
      
      <Logger name="com.myapp.service" level="${sys:myapp.log.level|myapp.log.level.service|warn}"/>
      
      <Logger name="com.myapp.controller" level="${sys:myapp.log.level|myapp.log.level.controller|warn}"/>
      

      This allows me to quickly rerun the app with different log levels without fiddling with the configuration file or JConsole. Defaults represent production settings, so that nothing extra needs to be specified to run the app.
      This work nice in other places as well:

      <PatternLayout disableAnsi="${sys:myapp.log.nocolor|true}">
      

      Disables colors by default (for production build), but leaves an easy way to turn them on for development.

      When no pipes are present in the expression, then the standard property lookup is used, so the change is backwards-compatible.
      Can be a separate lookup if needed.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                mlap Mihhail Lapushkin
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: