public final class JAnsiTextRenderer extends java.lang.Object implements TextRenderer
@|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)*)*}%n
For example:
%message{ansi}{WarningStyle=red,bold KeyStyle=white ValueStyle=blue}%n
The call site can look like this:
logger.info("@|KeyStyle {}|@ = @|ValueStyle {}|@", entry.getKey(), entry.getValue());
Note: This class originally copied and then heavily modified code from JAnsi's AnsiRenderer (which is licensed as
Apache 2.0.)AnsiRenderer| Modifier and Type | Field and Description |
|---|---|
private java.lang.String |
beginToken |
private int |
beginTokenLen |
static java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> |
DefaultExceptionStyleMap |
(package private) static java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> |
DefaultMessageStyleMap |
private java.lang.String |
endToken |
private int |
endTokenLen |
private static java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]>> |
PrefedinedStyleMaps |
private java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> |
styleMap |
| Constructor and Description |
|---|
JAnsiTextRenderer(java.lang.String[] formats,
java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> defaultStyleMap) |
| Modifier and Type | Method and Description |
|---|---|
java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> |
getStyleMap() |
private static void |
put(java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> map,
java.lang.String name,
org.fusesource.jansi.AnsiRenderer.Code... codes) |
private void |
render(org.fusesource.jansi.Ansi ansi,
org.fusesource.jansi.AnsiRenderer.Code... codes) |
private void |
render(org.fusesource.jansi.Ansi ansi,
org.fusesource.jansi.AnsiRenderer.Code code) |
void |
render(java.lang.StringBuilder input,
java.lang.StringBuilder output)
Renders input text to an output.
|
private java.lang.String |
render(java.lang.String text,
java.lang.String... names)
Renders the given text with the given names which can be ANSI code names or Log4j style names.
|
void |
render(java.lang.String input,
java.lang.StringBuilder output,
java.lang.String styleName)
Renders input text to an output.
|
private org.fusesource.jansi.AnsiRenderer.Code |
toCode(java.lang.String name) |
java.lang.String |
toString() |
public static final java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> DefaultExceptionStyleMap
static final java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> DefaultMessageStyleMap
private static final java.util.Map<java.lang.String,java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]>> PrefedinedStyleMaps
private final java.lang.String beginToken
private final int beginTokenLen
private final java.lang.String endToken
private final int endTokenLen
private final java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> styleMap
public JAnsiTextRenderer(java.lang.String[] formats,
java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> defaultStyleMap)
private static void put(java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> map,
java.lang.String name,
org.fusesource.jansi.AnsiRenderer.Code... codes)
public java.util.Map<java.lang.String,org.fusesource.jansi.AnsiRenderer.Code[]> getStyleMap()
private void render(org.fusesource.jansi.Ansi ansi,
org.fusesource.jansi.AnsiRenderer.Code code)
private void render(org.fusesource.jansi.Ansi ansi,
org.fusesource.jansi.AnsiRenderer.Code... codes)
private java.lang.String render(java.lang.String text,
java.lang.String... names)
text - The text to rendernames - ANSI code names or Log4j style names.public void render(java.lang.String input,
java.lang.StringBuilder output,
java.lang.String styleName)
throws java.lang.IllegalArgumentException
TextRendererrender in interface TextRendererinput - The inputoutput - The outputstyleName - The style name to use to render the input on the output.java.lang.IllegalArgumentExceptionpublic void render(java.lang.StringBuilder input,
java.lang.StringBuilder output)
throws java.lang.IllegalArgumentException
TextRendererrender in interface TextRendererinput - The inputoutput - The outputjava.lang.IllegalArgumentExceptionprivate org.fusesource.jansi.AnsiRenderer.Code toCode(java.lang.String name)
public java.lang.String toString()
toString in class java.lang.Object