Class JAnsiTextRenderer
- java.lang.Object
-
- org.apache.logging.log4j.core.pattern.JAnsiTextRenderer
-
- All Implemented Interfaces:
TextRenderer
public final class JAnsiTextRenderer extends java.lang.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 private static java.lang.StringBEGIN_TOKENprivate java.lang.StringbeginTokenprivate intbeginTokenLenprivate static intCSI_LENGTH(package private) static java.util.Map<java.lang.String,java.lang.String>DEFAULT_MESSAGE_STYLE_MAPstatic java.util.Map<java.lang.String,java.lang.String>DefaultExceptionStyleMapprivate static java.lang.StringEND_TOKENprivate java.lang.StringendTokenprivate intendTokenLenprivate static LoggerLOGGERprivate static java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>PREFEDINED_STYLE_MAPSprivate java.util.Map<java.lang.String,java.lang.String>styleMap
-
Constructor Summary
Constructors Constructor Description JAnsiTextRenderer(java.lang.String[] formats, java.util.Map<java.lang.String,java.lang.String> defaultStyleMap)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.util.Map.Entry<java.lang.String,java.lang.String>entry(java.lang.String name, AnsiEscape... codes)java.util.Map<java.lang.String,java.lang.String>getStyleMap()private static voidmerge(java.lang.String escapeSequence, java.lang.StringBuilder output, boolean first)private static <V> java.util.Map<java.lang.String,V>ofEntries(java.util.Map.Entry<java.lang.String,V>... entries)voidrender(java.lang.StringBuilder input, java.lang.StringBuilder output)Renders input text to an output.voidrender(java.lang.String input, java.lang.StringBuilder output, java.lang.String styleName)Renders input text to an output.private voidrender(java.lang.String input, java.lang.StringBuilder output, java.lang.String... styleNames)Renders the given input with the given names which can be ANSI code names or Log4j style names.java.lang.StringtoString()
-
-
-
Field Detail
-
LOGGER
private static final Logger LOGGER
-
DefaultExceptionStyleMap
public static final java.util.Map<java.lang.String,java.lang.String> DefaultExceptionStyleMap
-
DEFAULT_MESSAGE_STYLE_MAP
static final java.util.Map<java.lang.String,java.lang.String> DEFAULT_MESSAGE_STYLE_MAP
-
PREFEDINED_STYLE_MAPS
private static final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> PREFEDINED_STYLE_MAPS
-
BEGIN_TOKEN
private static final java.lang.String BEGIN_TOKEN
- See Also:
- Constant Field Values
-
END_TOKEN
private static final java.lang.String END_TOKEN
- See Also:
- Constant Field Values
-
CSI_LENGTH
private static final int CSI_LENGTH
- See Also:
- Constant Field Values
-
beginToken
private final java.lang.String beginToken
-
beginTokenLen
private final int beginTokenLen
-
endToken
private final java.lang.String endToken
-
endTokenLen
private final int endTokenLen
-
styleMap
private final java.util.Map<java.lang.String,java.lang.String> styleMap
-
-
Method Detail
-
entry
private static java.util.Map.Entry<java.lang.String,java.lang.String> entry(java.lang.String name, AnsiEscape... codes)
-
ofEntries
@SafeVarargs private static <V> java.util.Map<java.lang.String,V> ofEntries(java.util.Map.Entry<java.lang.String,V>... entries)
-
render
private void render(java.lang.String input, java.lang.StringBuilder output, java.lang.String... styleNames)Renders the given input with the given names which can be ANSI code names or Log4j style names.- Parameters:
input- The input to renderstyleNames- ANSI code names or Log4j style names.
-
merge
private static void merge(java.lang.String escapeSequence, java.lang.StringBuilder output, boolean first)
-
render
public void render(java.lang.String input, java.lang.StringBuilder output, java.lang.String styleName) throws java.lang.IllegalArgumentExceptionDescription 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:
java.lang.IllegalArgumentException
-
render
public void render(java.lang.StringBuilder input, java.lang.StringBuilder output) throws java.lang.IllegalArgumentExceptionDescription copied from interface:TextRendererRenders input text to an output.- Specified by:
renderin interfaceTextRenderer- Parameters:
input- The inputoutput- The output- Throws:
java.lang.IllegalArgumentException
-
getStyleMap
public java.util.Map<java.lang.String,java.lang.String> getStyleMap()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-