aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0224-Use-AsyncAppender-to-keep-logging-IO-off-main-thread.patch
blob: 7c24570379f76a67b5c036be59e8ae5d2d3f0f00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Date: Thu, 12 Aug 2021 04:46:41 -0700
Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread


diff --git a/build.gradle.kts b/build.gradle.kts
index 541357dff44a3ce86b6adf807c0e43df11b012ef..80c533bc8966e4f9d7b19ef98faf04146d14be7d 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -28,6 +28,7 @@ dependencies {
     implementation("org.ow2.asm:asm-commons:9.2") // Paper - ASM event executor generation
     runtimeOnly("org.xerial:sqlite-jdbc:3.36.0.3")
     runtimeOnly("mysql:mysql-connector-java:8.0.27")
+    runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
 
     runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.4")
     runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.2")
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 476f4a5cbe664ddd05474cb88553018bd334a5b8..3dc317e466e1b93dff030794dd7f29ca1b266778 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -29,15 +29,18 @@
             </Policies>
             <DefaultRolloverStrategy max="1000"/>
         </RollingRandomAccessFile>
+        <Async name="Async">
+            <AppenderRef ref="File"/>
+            <AppenderRef ref="TerminalConsole" level="info"/>
+            <AppenderRef ref="ServerGuiConsole" level="info"/>
+        </Async>
     </Appenders>
     <Loggers>
         <Root level="info">
             <filters>
                 <MarkerFilter marker="NETWORK_PACKETS" onMatch="DENY" onMismatch="NEUTRAL" />
             </filters>
-            <AppenderRef ref="File"/>
-            <AppenderRef ref="TerminalConsole" level="info"/>
-            <AppenderRef ref="ServerGuiConsole" level="info"/>
+            <AppenderRef ref="Async"/>
         </Root>
     </Loggers>
 </Configuration>