testserver/patches/server/0224-Use-asynchronous-Log4j-2-loggers.patch
Nassim Jahnke c75a8378a2
Don't expose ASM in API ()
ASM was not meant to exposed to API consumers in the first place, and for the duration of time it has been exposed, it has also been relocated.

Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
2021-07-19 22:58:48 +00:00

49 lines
2.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Tue, 17 Jul 2018 16:42:17 +0200
Subject: [PATCH] Use asynchronous Log4j 2 loggers
diff --git a/build.gradle.kts b/build.gradle.kts
index 34a0d6b54a15c8aa0c706541316c5d448e3d94b9..514633e01a1b5c85a4bc62bf1c3e096f4eaa5e98 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -38,6 +38,7 @@ dependencies {
}
runtimeOnly("org.xerial:sqlite-jdbc:3.34.0")
runtimeOnly("mysql:mysql-connector-java:8.0.23") // Paper
+ runtimeOnly("com.lmax:disruptor:3.4.2") // Paper
runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.1")
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.0")
diff --git a/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java b/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java
new file mode 100644
index 0000000000000000000000000000000000000000..db652a1f7abc80bc751fd94925abaec58ab1a563
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java
@@ -0,0 +1,17 @@
+package com.destroystokyo.paper.log;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy;
+import org.apache.logging.log4j.core.async.EventRoute;
+
+public final class LogFullPolicy implements AsyncQueueFullPolicy {
+
+ /*
+ * Prevents log calls being logged out of order when the log queue is full.
+ */
+
+ @Override
+ public EventRoute getRoute(final long backgroundThreadId, final Level level) {
+ return EventRoute.ENQUEUE;
+ }
+}
diff --git a/src/main/resources/log4j2.component.properties b/src/main/resources/log4j2.component.properties
index 0694b21465fb9e4164e71862ff24b62241b191f2..30efeb5faf8e7faccf1b252fa0ed6a9fc31c40a7 100644
--- a/src/main/resources/log4j2.component.properties
+++ b/src/main/resources/log4j2.component.properties
@@ -1 +1,3 @@
+Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
+log4j2.AsyncQueueFullPolicy="com.destroystokyo.paper.log.LogFullPolicy"
log4j.skipJansi=true