2021-06-11 14:02:28 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Minecrell <minecrell@minecrell.net>
|
|
|
|
Date: Thu, 21 Sep 2017 16:33:12 +0200
|
|
|
|
Subject: [PATCH] Allow plugins to use SLF4J for logging
|
|
|
|
|
|
|
|
SLF4J is a commonly used abstraction for various logging frameworks
|
|
|
|
such as java.util.logging (JUL) or Log4j. Currently, plugins are
|
|
|
|
required to do all their logging using the provided JUL logger.
|
|
|
|
This is annoying for plugins that target multiple platforms or when
|
|
|
|
using libraries that log messages using SLF4J.
|
|
|
|
|
|
|
|
Expose SLF4J as optional logging API for plugins, so they can use
|
|
|
|
it without having to shade it in the plugin and going through
|
|
|
|
several layers of logging abstraction.
|
|
|
|
|
2021-06-12 13:18:01 +02:00
|
|
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
2024-04-25 23:21:18 +02:00
|
|
|
index 7627eac76bc0e17413df26fdf49e94605be979e5..44c7abd676d7730837172473244729fa9298ffb1 100644
|
2021-06-12 13:18:01 +02:00
|
|
|
--- a/build.gradle.kts
|
|
|
|
+++ b/build.gradle.kts
|
2023-11-23 05:56:28 +01:00
|
|
|
@@ -12,6 +12,8 @@ java {
|
2024-04-25 23:21:18 +02:00
|
|
|
val annotationsVersion = "24.1.0"
|
2024-01-26 20:17:06 +01:00
|
|
|
val bungeeCordChatVersion = "1.20-R0.2"
|
2024-04-25 02:46:57 +02:00
|
|
|
val adventureVersion = "4.17.0-SNAPSHOT"
|
2023-12-10 19:04:19 +01:00
|
|
|
+val slf4jVersion = "2.0.9"
|
2023-06-16 17:34:49 +02:00
|
|
|
+val log4jVersion = "2.17.1"
|
|
|
|
val apiAndDocs: Configuration by configurations.creating {
|
|
|
|
attributes {
|
|
|
|
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
|
2023-12-10 19:04:19 +01:00
|
|
|
@@ -47,6 +49,8 @@ dependencies {
|
2021-08-14 06:11:12 +02:00
|
|
|
apiAndDocs("net.kyori:adventure-text-serializer-legacy")
|
|
|
|
apiAndDocs("net.kyori:adventure-text-serializer-plain")
|
2022-06-12 23:07:40 +02:00
|
|
|
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
2023-06-16 17:34:49 +02:00
|
|
|
+ api("org.apache.logging.log4j:log4j-api:$log4jVersion")
|
|
|
|
+ api("org.slf4j:slf4j-api:$slf4jVersion")
|
2021-06-12 13:18:01 +02:00
|
|
|
|
2024-04-06 21:53:39 +02:00
|
|
|
implementation("org.ow2.asm:asm:9.7")
|
|
|
|
implementation("org.ow2.asm:asm-commons:9.7")
|
2023-12-10 19:04:19 +01:00
|
|
|
@@ -137,6 +141,8 @@ tasks.withType<Javadoc> {
|
2023-06-16 17:34:49 +02:00
|
|
|
"https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/",
|
|
|
|
"https://jd.advntr.dev/text-serializer-plain/$adventureVersion/",
|
2023-08-14 01:32:51 +02:00
|
|
|
"https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/",
|
2023-06-16 17:34:49 +02:00
|
|
|
+ "https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
|
2023-08-14 01:32:51 +02:00
|
|
|
+ "https://javadoc.io/doc/org.apache.logging.log4j/log4j-api/$log4jVersion/",
|
2023-06-16 17:34:49 +02:00
|
|
|
// Paper end
|
2023-09-17 01:35:39 +02:00
|
|
|
"https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3", // Paper
|
2023-06-16 17:34:49 +02:00
|
|
|
)
|
2021-06-11 14:02:28 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/plugin/Plugin.java b/src/main/java/org/bukkit/plugin/Plugin.java
|
2023-02-19 15:57:10 +01:00
|
|
|
index 8c76716249e44ed8bf6be94c1f5c7b6d9bb35be2..4eb639fbb46a0848be207149ea433455550fae1c 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/plugin/Plugin.java
|
|
|
|
+++ b/src/main/java/org/bukkit/plugin/Plugin.java
|
2023-02-19 15:57:10 +01:00
|
|
|
@@ -198,6 +198,22 @@ public interface Plugin extends TabExecutor {
|
2022-06-12 23:07:40 +02:00
|
|
|
}
|
|
|
|
// Paper end
|
2021-06-11 14:02:28 +02:00
|
|
|
|
2021-08-02 09:57:31 +02:00
|
|
|
+ // Paper start - Add SLF4J/Log4J loggers
|
2021-06-11 14:02:28 +02:00
|
|
|
+ @NotNull
|
|
|
|
+ default org.slf4j.Logger getSLF4JLogger() {
|
|
|
|
+ return org.slf4j.LoggerFactory.getLogger(getLogger().getName());
|
|
|
|
+ }
|
2021-08-02 09:57:31 +02:00
|
|
|
+
|
2022-01-20 03:39:08 +01:00
|
|
|
+ /**
|
|
|
|
+ * @deprecated use {@link #getSLF4JLogger()}
|
|
|
|
+ */
|
|
|
|
+ @Deprecated
|
2021-08-02 09:57:31 +02:00
|
|
|
+ @NotNull
|
|
|
|
+ default org.apache.logging.log4j.Logger getLog4JLogger() {
|
|
|
|
+ return org.apache.logging.log4j.LogManager.getLogger(getLogger().getName());
|
|
|
|
+ }
|
2021-06-11 14:02:28 +02:00
|
|
|
+ // Paper end
|
|
|
|
+
|
|
|
|
/**
|
|
|
|
* Returns the name of the plugin.
|
|
|
|
* <p>
|