You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2016/07/20 21:35:09 UTC
[06/16] logging-log4j2 git commit: Introduce default styles.
Introduce default styles.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b07bfe86
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b07bfe86
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b07bfe86
Branch: refs/heads/StyledXException
Commit: b07bfe86d0e4f1ccc92d18730f221db6ae1c7cd1
Parents: 0afb5b5
Author: ggregory <gg...@apache.org>
Authored: Tue Jul 12 21:48:10 2016 -0700
Committer: ggregory <gg...@apache.org>
Committed: Tue Jul 12 21:48:10 2016 -0700
----------------------------------------------------------------------
.../log4j/core/pattern/JAnsiTextRenderer.java | 52 ++++++++++++++++++--
.../resources/log4j2-console-xex-ansi-kirk.xml | 31 ++++++++++++
2 files changed, 79 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b07bfe86/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
index 4e09fc4..e1c4de1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/JAnsiTextRenderer.java
@@ -75,9 +75,12 @@ import org.fusesource.jansi.AnsiRenderer.Code;
public final class JAnsiTextRenderer implements TextRenderer {
public static final Map<String, Code[]> DefaultExceptionStyleMap;
- public static final Map<String, Code[]> DefaultMessageStyleMap;
+ static final Map<String, Code[]> DefaultMessageStyleMap;
+ private static final Map<String,Map<String, Code[]>> PrefedinedStyleMaps;
static {
+ Map<String,Map<String, Code[]>> tempPreDefs = new HashMap<>();
+ // Default: Spock
{
// TODO Should the keys be in an enum?
Map<String, Code[]> temp = new HashMap<>();
@@ -95,22 +98,53 @@ public final class JAnsiTextRenderer implements TextRenderer {
temp.put("StackTraceElement.FileName", new Code[] { Code.MAGENTA });
temp.put("StackTraceElement.LineNumber", new Code[] { Code.MAGENTA });
temp.put("StackTraceElement.Container", new Code[] { Code.MAGENTA });
- temp.put("StackTraceElement.ContainerSeparator", new Code[] { Code.MAGENTA});
+ temp.put("StackTraceElement.ContainerSeparator", new Code[] { Code.WHITE});
temp.put("StackTraceElement.UnknownSource", new Code[] { Code.MAGENTA });
// ExtraClassInfo
- temp.put("ExtraClassInfo.Inexact", new Code[] { Code.GREEN });
+ temp.put("ExtraClassInfo.Inexact", new Code[] { Code.CYAN });
temp.put("ExtraClassInfo.Container", new Code[] { Code.GREEN, Code.INTENSITY_FAINT });
- temp.put("ExtraClassInfo.ContainerSeparator", new Code[] { Code.GREEN, Code.INTENSITY_FAINT });
+ temp.put("ExtraClassInfo.ContainerSeparator", new Code[] { Code.WHITE });
temp.put("ExtraClassInfo.Location", new Code[] { Code.GREEN });
temp.put("ExtraClassInfo.Version", new Code[] { Code.GREEN });
// Save
DefaultExceptionStyleMap = Collections.unmodifiableMap(temp);
+ tempPreDefs.put("Spock", DefaultExceptionStyleMap);
+ }
+ // Kirk
+ {
+ // TODO Should the keys be in an enum?
+ Map<String, Code[]> temp = new HashMap<>();
+ temp.put("Prefix", new Code[] { Code.WHITE });
+ temp.put("Name", new Code[] { Code.RED });
+ temp.put("Message", new Code[] { Code.RED, Code.BOLD });
+ temp.put("At", new Code[] { Code.WHITE });
+ temp.put("CauseLabel", new Code[] { Code.WHITE });
+ temp.put("Text", new Code[] { Code.WHITE });
+ // StackTraceElement
+ temp.put("StackTraceElement.ClassName", new Code[] { Code.MAGENTA });
+ temp.put("StackTraceElement.ClassMethodSeparator", new Code[] { Code.MAGENTA });
+ temp.put("StackTraceElement.MethodName", new Code[] { Code.YELLOW });
+ temp.put("StackTraceElement.NativeMethod", new Code[] { Code.MAGENTA });
+ temp.put("StackTraceElement.FileName", new Code[] { Code.CYAN });
+ temp.put("StackTraceElement.LineNumber", new Code[] { Code.CYAN });
+ temp.put("StackTraceElement.Container", new Code[] { Code.MAGENTA });
+ temp.put("StackTraceElement.ContainerSeparator", new Code[] { Code.MAGENTA});
+ temp.put("StackTraceElement.UnknownSource", new Code[] { Code.MAGENTA });
+ // ExtraClassInfo
+ temp.put("ExtraClassInfo.Inexact", new Code[] { Code.BG_CYAN });
+ temp.put("ExtraClassInfo.Container", new Code[] { Code.BG_CYAN });
+ temp.put("ExtraClassInfo.ContainerSeparator", new Code[] { Code.BG_CYAN });
+ temp.put("ExtraClassInfo.Location", new Code[] { Code.BG_CYAN });
+ temp.put("ExtraClassInfo.Version", new Code[] { Code.BG_CYAN });
+ // Save
+ tempPreDefs.put("Kirk", Collections.unmodifiableMap(temp));
}
{
Map<String, Code[]> temp = new HashMap<>();
// TODO
DefaultMessageStyleMap = Collections.unmodifiableMap(temp);
}
+ PrefedinedStyleMaps = Collections.unmodifiableMap(tempPreDefs);
}
private final String beginToken;
@@ -150,6 +184,16 @@ public final class JAnsiTextRenderer implements TextRenderer {
case "EndToken":
tempEndToken = codeNames[0];
break;
+ case "StyleMapName":
+ final String predefinedMapName = codeNames[0];
+ Map<String, Code[]> predefinedMap = PrefedinedStyleMaps.get(predefinedMapName);
+ if (predefinedMap != null) {
+ map.putAll(predefinedMap);
+ } else {
+ StatusLogger.getLogger().warn("Unknown predefined map name {}, pick one of {}",
+ predefinedMapName, null);
+ }
+ break;
default:
final Code[] codes = new Code[codeNames.length];
for (int i = 0; i < codes.length; i++) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b07bfe86/log4j-core/src/test/resources/log4j2-console-xex-ansi-kirk.xml
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/resources/log4j2-console-xex-ansi-kirk.xml b/log4j-core/src/test/resources/log4j2-console-xex-ansi-kirk.xml
new file mode 100644
index 0000000..c944c8d
--- /dev/null
+++ b/log4j-core/src/test/resources/log4j2-console-xex-ansi-kirk.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<Configuration status="OFF">
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d [%t] %-5level: %msg%n%xThrowable{full}{ansi(StyleMapName=Kirk)}" />
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Logger name="org.foo" level="DEBUG" />
+ <Root level="TRACE">
+ <AppenderRef ref="Console" />
+ </Root>
+ </Loggers>
+</Configuration>