Install appenders on disabled colorLoggingLevel too

This commit is contained in:
games647 2017-06-02 11:11:00 +02:00
parent b8c61ecaba
commit 327ca3c614
No known key found for this signature in database
GPG Key ID: E9E962F08F621538
5 changed files with 32 additions and 31 deletions

View File

@ -2,9 +2,11 @@ package com.github.games647.colorconsole.bukkit;
import com.github.games647.colorconsole.common.CommonLogInstaller;
import com.google.common.collect.Maps;
import java.io.Serializable;
import java.util.Map;
import java.util.logging.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Layout;
@ -82,24 +84,17 @@ public class ColorConsoleBukkit extends JavaPlugin {
getLogger().log(Level.WARNING, "Cannot install log format", ex);
}
if (getConfig().getBoolean("colorPluginTag")) {
Logger rootLogger = ((Logger) LogManager.getRootLogger());
ColorPluginAppender pluginAppender = new ColorPluginAppender(terminalAppender, getConfig());
Map<String, String> colors = Maps.newHashMap();
for (Map.Entry<String, Object> entry : getConfig().getValues(false).entrySet()) {
if (!entry.getKey().startsWith("P-")) {
continue;
}
colors.put(entry.getKey().replace("P-", ""), (String) entry.getValue());
ColorPluginAppender pluginAppender = new ColorPluginAppender(terminalAppender, getConfig());
Map<String, String> colors = Maps.newHashMap();
for (Map.Entry<String, Object> entry : getConfig().getValues(false).entrySet()) {
if (!entry.getKey().startsWith("P-")) {
continue;
}
pluginAppender.initPluginColors(colors, getConfig().getString("PLUGIN"));
pluginAppender.start();
rootLogger.removeAppender(terminalAppender);
rootLogger.addAppender(pluginAppender);
colors.put(entry.getKey().replace("P-", ""), (String) entry.getValue());
}
pluginAppender.initPluginColors(colors, getConfig().getString("PLUGIN"));
CommonLogInstaller.installAppender(pluginAppender, TERMINAL_NAME);
}
}

View File

@ -12,7 +12,7 @@ import java.util.Set;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.Ansi.Attribute;
import org.fusesource.jansi.Ansi.Color;
import org.fusesource.jansi.AnsiRenderer;
import org.fusesource.jansi.AnsiRenderer.Code;
public class CommonFormatter {
@ -99,7 +99,7 @@ public class CommonFormatter {
String[] formatParts = pluginFormat.split(" ");
Ansi ansi = Ansi.ansi();
for (String format : formatParts) {
for (AnsiRenderer.Code ansiCode : AnsiRenderer.Code.values()) {
for (Code ansiCode : Code.values()) {
if (ansiCode.name().equalsIgnoreCase(format)) {
if (ansiCode.isAttribute()) {
ansi.a(ansiCode.getAttribute());
@ -136,7 +136,7 @@ public class CommonFormatter {
continue;
}
for (Ansi.Color color : Ansi.Color.values()) {
for (Color color : Color.values()) {
if (format.equalsIgnoreCase(color.name())) {
ansi.fg(color);
break;

View File

@ -8,6 +8,7 @@ import java.nio.charset.Charset;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.Layout;
import org.apache.logging.log4j.core.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
@ -34,6 +35,15 @@ public class CommonLogInstaller {
}
}
public static void installAppender(Appender colorAppender, String terminalName) {
Logger rootLogger = (Logger) LogManager.getRootLogger();
colorAppender.start();
rootLogger.removeAppender(getTerminalAppender(terminalName));
rootLogger.addAppender(colorAppender);
}
public static void setLayout(Layout<? extends Serializable> layout, Appender terminalAppender)
throws ReflectiveOperationException {
Field field = terminalAppender.getClass().getSuperclass().getDeclaredField("layout");

View File

@ -12,7 +12,6 @@ import ninja.leaping.configurate.loader.ConfigurationLoader;
import ninja.leaping.configurate.objectmapping.ObjectMapper;
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.slf4j.Logger;
@ -21,7 +20,7 @@ import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GamePreInitializationEvent;
import org.spongepowered.api.plugin.Plugin;
@Plugin(id = "colorconsole", name = "ColorConsole", version = "1.9"
@Plugin(id = "colorconsole", name = "ColorConsole", version = "2.2"
, url = "https://github.com/games647/ColorConsole/"
, description = "Print colorful console messages depending on the logging level")
public class ColorConsoleSponge {
@ -100,16 +99,9 @@ public class ColorConsoleSponge {
logger.warn("Cannot install log format", ex);
}
if (configMapper.getInstance().isColorPluginTag()) {
org.apache.logging.log4j.core.Logger rootLogger = ((org.apache.logging.log4j.core.Logger) LogManager
.getRootLogger());
ColorPluginAppender pluginAppender = new ColorPluginAppender(terminalAppender, getConfig());
pluginAppender.initPluginColors(getConfig().getPluginColors(), getConfig().getDefaultPluginColor());
ColorPluginAppender pluginAppender = new ColorPluginAppender(terminalAppender, getConfig());
pluginAppender.initPluginColors(getConfig().getPluginColors(), getConfig().getDefaultPluginColor());
pluginAppender.start();
rootLogger.removeAppender(terminalAppender);
rootLogger.addAppender(pluginAppender);
}
CommonLogInstaller.installAppender(pluginAppender, TERMINAL_NAME);
}
}

View File

@ -6,6 +6,10 @@ colorPluginTag: true
# Should the log message be highlighted depending on the logging level
colorLoggingLevel: true
# Should the complete logging message be colored in the same style as the logging level (like ColorConsole v1).
# If not it's using the default color (like ColorConsole v2+)
colorMessage: false
# How the messages should be displayed
#
# Variables: