diff --git a/pom.xml b/pom.xml index f6c1441..60e118f 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,11 @@ log4j-jul ${log4j.version} + + org.apache.logging.log4j + log4j-iostreams + ${log4j.version} + org.yaml snakeyaml diff --git a/src/main/java/de/cubeside/globalserver/GlobalServer.java b/src/main/java/de/cubeside/globalserver/GlobalServer.java index e50f3c6..8882549 100644 --- a/src/main/java/de/cubeside/globalserver/GlobalServer.java +++ b/src/main/java/de/cubeside/globalserver/GlobalServer.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; +import java.io.PrintStream; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; @@ -28,8 +29,10 @@ import java.util.List; import java.util.Objects; import java.util.UUID; +import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.io.IoBuilder; import org.yaml.snakeyaml.TypeDescription; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; @@ -37,6 +40,10 @@ public class GlobalServer { static { System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); + PrintStream logger = IoBuilder.forLogger("System.out").setLevel(Level.INFO).buildPrintStream(); + PrintStream errorLogger = IoBuilder.forLogger("System.err").setLevel(Level.ERROR).buildPrintStream(); + System.setOut(logger); + System.setErr(errorLogger); } public final static Logger LOGGER = LogManager.getLogger("Server"); diff --git a/src/main/java/de/cubeside/globalserver/JLineAppender.java b/src/main/java/de/cubeside/globalserver/JLineAppender.java index 1c92692..74dfb66 100644 --- a/src/main/java/de/cubeside/globalserver/JLineAppender.java +++ b/src/main/java/de/cubeside/globalserver/JLineAppender.java @@ -1,5 +1,6 @@ package de.cubeside.globalserver; +import java.io.PrintStream; import java.io.Serializable; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Core; @@ -15,8 +16,11 @@ @Plugin(name = "JLineAppender", category = Core.CATEGORY_NAME, elementType = Appender.ELEMENT_TYPE) public class JLineAppender extends AbstractAppender { + private PrintStream realSystemOut; + protected JLineAppender(String name, Filter filter, Layout layout) { super(name, filter, layout, true, Property.EMPTY_ARRAY); + realSystemOut = System.out; } @PluginFactory @@ -31,7 +35,7 @@ public void append(LogEvent event) { if (console != null) { console.appendOutput(message); } else { - System.out.print(message); + realSystemOut.print(message); } } } \ No newline at end of file