mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 06:58:11 +02:00
This is the start of a new module for Paper to add support for API's that interface Mojang API's directly. This allows us to version properly by MC version incase Mojang makes any major breaking changes. It also lets us separate Mojang API's from Paper-API so our downstream friends at Glowstone will not have to worry about Mojang code. Adds AsyncPlayerSendCommandsEvent - Allows modifying on a per command basis what command data they see. Adds CommandRegisteredEvent - Allows manipulating the CommandNode to add more children/metadata for the client
59 lines
2.0 KiB
Diff
59 lines
2.0 KiB
Diff
From f52e7ce0fdce36da196c298d84ac8b5d778c4cb6 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/pom.xml b/pom.xml
|
|
index 76ce7f4486..28ff064c19 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -80,6 +80,13 @@
|
|
<artifactId>log4j-iostreams</artifactId>
|
|
<version>2.8.1</version>
|
|
</dependency>
|
|
+ <!-- Paper - Async loggers -->
|
|
+ <dependency>
|
|
+ <groupId>com.lmax</groupId>
|
|
+ <artifactId>disruptor</artifactId>
|
|
+ <version>3.4.2</version>
|
|
+ <scope>runtime</scope>
|
|
+ </dependency>
|
|
<dependency>
|
|
<groupId>org.ow2.asm</groupId>
|
|
<artifactId>asm</artifactId>
|
|
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 0000000000..db652a1f7a
|
|
--- /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 0694b21465..30efeb5faf 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
|
|
--
|
|
2.26.2
|
|
|