Class MDCBasedDiscriminator

All Implemented Interfaces:
Discriminator<ILoggingEvent>, ContextAware, LifeCycle

MDCBasedDiscriminator essentially returns the value mapped to an MDC key. If the said value is null, then a default value is returned.

Both Key and the DefaultValue are user specified properties.

MDC values containing any of the characters /, \, $, {, }, [, ], (, ) , |, ?, *, +, %, ,, @ or the sequence .. are rejected, in which case the default value is returned. This prevents path separators, relative path components, variable substitutions such as ${file.separator}, regex special characters as well as the anchor character '%' or the ',' and '@' characters from leaking into file names or email addresses.

Moreover, the maximum length of an MDC value is limited to 64 characters.

Author:
Ceki Gülcü
  • Constructor Details

  • Method Details

    • start

      public void start()
      Specified by:
      start in interface LifeCycle
      Overrides:
      start in class AbstractDiscriminator<ILoggingEvent>
    • getDiscriminatingValue

      Return the value associated with an MDC entry designated by the Key property. If that value is null, then return the value assigned to the DefaultValue property.

      If the MDC value contains any of the characters /, \, $, { or }, or the sequence .., then the value assigned to the DefaultValue property is returned.

      Parameters:
      event -
      Returns:
    • getKey

      public String getKey()
      Description copied from interface: Discriminator
      The key or variable name under which the discriminating value should be exported into the host environment.
      Returns:
    • setKey

      public void setKey(String key)
    • getDefaultValue

      Returns:
      See Also:
    • setDefaultValue

      public void setDefaultValue(String defaultValue)
      The default MDC value in case the MDC is not set for mdcKey.

      For example, if Key is set to the value "someKey", and the MDC is not set for "someKey", then this appender will use the default value, which you can set with the help of this method.

      Parameters:
      defaultValue -