Class JAnsiTextRenderer
- java.lang.Object
-
- org.apache.logging.log4j.core.pattern.JAnsiTextRenderer
-
- All Implemented Interfaces:
TextRenderer
public final class JAnsiTextRenderer extends Object implements TextRenderer
Renders an input as ANSI escaped output.Uses the JLine AnsiRenderer syntax to render a message into an ANSI escaped string.
The default syntax for embedded ANSI codes is:
@|code(,code)* text|@
For example, to render the message"Hello"in green, use:@|green Hello|@
To render the message"Hello"in bold and red, use:@|bold,red Warning!|@
You can also define custom style names in the configuration with the syntax:%message{ansi}{StyleName=value(,value)*( StyleName=value(,value)*)*}%nFor example:%message{ansi}{WarningStyle=red,bold KeyStyle=white ValueStyle=blue}%nThe call site can look like this:logger.info("@|KeyStyle {}|@ = @|ValueStyle {}|@", entry.getKey(), entry.getValue());Note: this class was originally copied and then heavily modified from JAnsi/JLine AnsiRenderer, licensed under an Apache Software License, version 2.0.
-
-
Field Summary
Fields Modifier and Type Field Description static Map<String,String>DefaultExceptionStyleMap
-
Constructor Summary
Constructors Constructor Description JAnsiTextRenderer(String[] formats, Map<String,String> defaultStyleMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,String>getStyleMap()voidrender(StringBuilder input, StringBuilder output)Renders input text to an output.voidrender(String input, StringBuilder output, String styleName)Renders input text to an output.StringtoString()
-
-
-
Method Detail
-
render
public void render(String input, StringBuilder output, String styleName) throws IllegalArgumentException
Description copied from interface:TextRendererRenders input text to an output.- Specified by:
renderin interfaceTextRenderer- Parameters:
input- The inputoutput- The outputstyleName- The style name to use to render the input on the output.- Throws:
IllegalArgumentException
-
render
public void render(StringBuilder input, StringBuilder output) throws IllegalArgumentException
Description copied from interface:TextRendererRenders input text to an output.- Specified by:
renderin interfaceTextRenderer- Parameters:
input- The inputoutput- The output- Throws:
IllegalArgumentException
-
-