aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch')
-rw-r--r--Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch b/Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
new file mode 100644
index 0000000000..b28a0a32e0
--- /dev/null
+++ b/Spigot-Server-Patches/0200-Use-Log4j-IOStreams-to-redirect-System.out-err-to-lo.patch
@@ -0,0 +1,49 @@
+From 24b3889d4c1ca6119886c22819850d47bf9ce2bd Mon Sep 17 00:00:00 2001
+From: Minecrell <[email protected]>
+Date: Mon, 18 Sep 2017 12:00:03 +0200
+Subject: [PATCH] Use Log4j IOStreams to redirect System.out/err to logger
+
+Log4j2 provides an optimized implementation of PrintStream that
+redirects its output to a logger. Use it instead of a custom
+implementation for minor performance improvements and some fixes.
+
+With the old implementation, each call to System.print()
+results in a separate line, even though it should not result in
+a line break. Log4j's implementation handles it correctly.
+
+diff --git a/pom.xml b/pom.xml
+index 2b73ec28a1..0a6e81b680 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -63,6 +63,11 @@
+ <version>2.8.1</version>
+ <scope>runtime</scope>
+ </dependency>
++ <dependency>
++ <groupId>org.apache.logging.log4j</groupId>
++ <artifactId>log4j-iostreams</artifactId>
++ <version>2.8.1</version>
++ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm</artifactId>
+diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
+index 5bb1ea880a..0d2c7a6dc4 100644
+--- a/src/main/java/net/minecraft/server/DedicatedServer.java
++++ b/src/main/java/net/minecraft/server/DedicatedServer.java
+@@ -131,8 +131,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
+ */
+ // Paper end
+
+- System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true));
+- System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true));
++ // Paper start - Use Log4j IOStreams
++ System.setOut(org.apache.logging.log4j.io.IoBuilder.forLogger(logger).setLevel(Level.INFO).buildPrintStream());
++ System.setErr(org.apache.logging.log4j.io.IoBuilder.forLogger(logger).setLevel(Level.WARN).buildPrintStream());
++ // Paper end
+ // CraftBukkit end
+
+ thread.setDaemon(true);
+--
+2.21.0
+