Class HighlightConverter

All Implemented Interfaces:
AnsiConverter, PatternConverter

@Plugin(name="highlight", category="Converter") public final class HighlightConverter extends LogEventPatternConverter implements AnsiConverter
Highlight pattern converter. Formats the result of a pattern using a color appropriate for the Level in the LogEvent.

For example:

 %highlight{%d{ ISO8601 } [%t] %-5level: %msg%n%throwable}
 

You can define custom colors for each Level:

 %highlight{%d{ ISO8601 } [%t] %-5level: %msg%n%throwable}{FATAL=red, ERROR=red, WARN=yellow, INFO=green, DEBUG=cyan,
 TRACE=black}
 

You can use a predefined style:

 %highlight{%d{ ISO8601 } [%t] %-5level: %msg%n%throwable}{STYLE=DEFAULT}
 

The available predefined styles are:

  • Default
  • Log4j - The same as Default
  • Logback

You can use whitespace around the comma and equal sign. The names in values MUST come from the AnsiEscape enum, case is normalized to upper-case internally.

To disable ANSI output unconditionally, specify an additional option disableAnsi=true, or to disable ANSI output if no console is detected, specify option noConsoleNoAnsi=true e.g..

 %highlight{%d{ ISO8601 } [%t] %-5level: %msg%n%throwable}{STYLE=DEFAULT, noConsoleNoAnsi=true}
 
  • Field Details

  • Constructor Details

    • HighlightConverter

      private HighlightConverter(List<PatternFormatter> patternFormatters, Map<String,String> levelStyles, boolean noAnsi)
      Construct the converter.
      Parameters:
      patternFormatters - The PatternFormatters to generate the text to manipulate.
      noAnsi - If true, do not output ANSI escape codes.
  • Method Details

    • createLevelStyleMap

      private static Map<String,String> createLevelStyleMap(String[] options)
      Creates a level style map where values are ANSI escape sequences given configuration options in option[1] .

      The format of the option string in option[1] is:

       Level1=Value, Level2=Value, ...
       

      For example:

       ERROR=red bold, WARN=yellow bold, INFO=green, ...
       

      You can use whitespace around the comma and equal sign. The names in values MUST come from the AnsiEscape enum, case is normalized to upper-case internally.

      Parameters:
      options - The second slot can optionally contain the style map.
      Returns:
      a new map
    • newInstance

      public static HighlightConverter newInstance(Configuration config, String[] options)
      Gets an instance of the class.
      Parameters:
      config - The current Configuration.
      options - pattern options, may be null. If first element is "short", only the first line of the throwable will be formatted.
      Returns:
      instance of class.
    • format

      public void format(LogEvent event, StringBuilder toAppendTo)
      Formats an event into a string buffer.
      Specified by:
      format in class LogEventPatternConverter
      Parameters:
      event - event to format, may not be null.
      toAppendTo - string buffer to which the formatted event will be appended. May not be null.
    • getLevelStyle

      String getLevelStyle(Level level)
    • handlesThrowable

      public boolean handlesThrowable()
      Description copied from class: LogEventPatternConverter
      Normally pattern converters are not meant to handle Exceptions although few pattern converters might.

      By examining the return values for this method, the containing layout will determine whether it handles throwables or not.

      Overrides:
      handlesThrowable in class LogEventPatternConverter
      Returns:
      true if this PatternConverter handles throwables