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 extends Serializable> 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