diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 021ee38..5f2057a 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -3,7 +3,7 @@
[versions]
junit-jupiter = "5.10.2"
-log4j = "2.24.1"
+slf4j = "2.0.17"
javacord = "3.8.0"
discord4j = "3.2.7"
geantyref = "2.0.0"
@@ -11,7 +11,7 @@ mockito = "5.15.2"
[libraries]
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
-log4j = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j"}
+slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j"}
javacord = { module = "org.javacord:javacord", version.ref = "javacord"}
discord4j = { module = "com.discord4j:discord4j-core", version.ref = "discord4j"}
geantyref = { module = "io.leangen.geantyref:geantyref", version.ref = "geantyref"}
diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts
index 12ef189..19aca3b 100644
--- a/lib/build.gradle.kts
+++ b/lib/build.gradle.kts
@@ -20,7 +20,7 @@ dependencies {
testImplementation(libs.junit.jupiter)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
- implementation(libs.log4j)
+ implementation(libs.slf4j)
implementation(libs.geantyref)
}
diff --git a/lib/src/main/java/net/tomatentum/marinara/Marinara.java b/lib/src/main/java/net/tomatentum/marinara/Marinara.java
index c1be562..f53a7ae 100644
--- a/lib/src/main/java/net/tomatentum/marinara/Marinara.java
+++ b/lib/src/main/java/net/tomatentum/marinara/Marinara.java
@@ -1,6 +1,6 @@
package net.tomatentum.marinara;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.registry.InteractionCheckRegistry;
import net.tomatentum.marinara.registry.InteractionRegistry;
diff --git a/lib/src/main/java/net/tomatentum/marinara/checks/AppliedCheck.java b/lib/src/main/java/net/tomatentum/marinara/checks/AppliedCheck.java
index 6b4c487..c20cf5a 100644
--- a/lib/src/main/java/net/tomatentum/marinara/checks/AppliedCheck.java
+++ b/lib/src/main/java/net/tomatentum/marinara/checks/AppliedCheck.java
@@ -5,7 +5,7 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.util.LoggerUtil;
import net.tomatentum.marinara.util.ReflectionUtil;
@@ -27,7 +27,7 @@ public record AppliedCheck(InteractionCheck> check, Annotation annotation) {
logger.debug("Pre Check {} {} with context {}", check.getClass().getName(), result ? "succeeded" : "failed", context.toString());
return result;
} catch (IllegalAccessException | InvocationTargetException | SecurityException e) {
- logger.fatal(e);
+ logger.error("Failed executing pre-check", e);
return false;
}
}
@@ -43,7 +43,7 @@ public record AppliedCheck(InteractionCheck> check, Annotation annotation) {
logger.debug("Executing post check {} with context {}", check.getClass().getName(), context.toString());
method.invoke(check, context, annotation);
} catch (IllegalAccessException | InvocationTargetException | SecurityException e) {
- logger.fatal(e);
+ logger.error("Failed executing post-check", e);
}
}
diff --git a/lib/src/main/java/net/tomatentum/marinara/interaction/commands/SlashCommandDefinition.java b/lib/src/main/java/net/tomatentum/marinara/interaction/commands/SlashCommandDefinition.java
index 164eec4..65aa47c 100644
--- a/lib/src/main/java/net/tomatentum/marinara/interaction/commands/SlashCommandDefinition.java
+++ b/lib/src/main/java/net/tomatentum/marinara/interaction/commands/SlashCommandDefinition.java
@@ -4,7 +4,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOption;
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOption.PlaceHolderEnum;
diff --git a/lib/src/main/java/net/tomatentum/marinara/interaction/methods/InteractionMethod.java b/lib/src/main/java/net/tomatentum/marinara/interaction/methods/InteractionMethod.java
index 09d7c61..9fdda56 100644
--- a/lib/src/main/java/net/tomatentum/marinara/interaction/methods/InteractionMethod.java
+++ b/lib/src/main/java/net/tomatentum/marinara/interaction/methods/InteractionMethod.java
@@ -7,7 +7,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.Marinara;
import net.tomatentum.marinara.checks.AppliedCheck;
@@ -69,7 +69,7 @@ public abstract class InteractionMethod {
try {
method.invoke(handler, getParameters(context));
}catch (IllegalAccessException | InvocationTargetException ex) {
- logger.fatal(ex);
+ logger.error("InteractionMethod failed to run", ex);
}
this.appliedChecks.forEach(x -> x.post(context));
diff --git a/lib/src/main/java/net/tomatentum/marinara/parser/ButtonParser.java b/lib/src/main/java/net/tomatentum/marinara/parser/ButtonParser.java
index 1e5bdb4..ee8ab37 100644
--- a/lib/src/main/java/net/tomatentum/marinara/parser/ButtonParser.java
+++ b/lib/src/main/java/net/tomatentum/marinara/parser/ButtonParser.java
@@ -3,7 +3,7 @@ package net.tomatentum.marinara.parser;
import java.lang.reflect.Method;
import java.util.function.Consumer;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.interaction.annotation.Button;
import net.tomatentum.marinara.util.LoggerUtil;
diff --git a/lib/src/main/java/net/tomatentum/marinara/parser/InteractionCheckParser.java b/lib/src/main/java/net/tomatentum/marinara/parser/InteractionCheckParser.java
index a397168..7379141 100644
--- a/lib/src/main/java/net/tomatentum/marinara/parser/InteractionCheckParser.java
+++ b/lib/src/main/java/net/tomatentum/marinara/parser/InteractionCheckParser.java
@@ -6,7 +6,7 @@ import java.util.Arrays;
import java.util.Optional;
import java.util.function.Consumer;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.checks.AppliedCheck;
import net.tomatentum.marinara.checks.InteractionCheck;
diff --git a/lib/src/main/java/net/tomatentum/marinara/parser/SlashCommandParser.java b/lib/src/main/java/net/tomatentum/marinara/parser/SlashCommandParser.java
index ca07241..c598761 100644
--- a/lib/src/main/java/net/tomatentum/marinara/parser/SlashCommandParser.java
+++ b/lib/src/main/java/net/tomatentum/marinara/parser/SlashCommandParser.java
@@ -3,7 +3,7 @@ package net.tomatentum.marinara.parser;
import java.lang.reflect.Method;
import java.util.function.Consumer;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.interaction.InteractionType;
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
@@ -59,7 +59,7 @@ public class SlashCommandParser implements AnnotationParser {
.build(isAutoComplete);
}
- logger.trace("Parsed using SlashCommandParser for method {} with the result:\n{}", ReflectionUtil.getFullMethodName(method), lastIdentifier.toString());
+ logger.trace("Parsed using SlashCommandParser for method {} with the result: {}", ReflectionUtil.getFullMethodName(method), lastIdentifier.toString());
consumer.accept((SlashCommandIdentifier) lastIdentifier);
}
diff --git a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionCheckRegistry.java b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionCheckRegistry.java
index 59f5220..1093adf 100644
--- a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionCheckRegistry.java
+++ b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionCheckRegistry.java
@@ -6,7 +6,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import io.leangen.geantyref.GenericTypeReflector;
import net.tomatentum.marinara.checks.InteractionCheck;
diff --git a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionEntry.java b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionEntry.java
index 6e2735b..2d2868a 100644
--- a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionEntry.java
+++ b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionEntry.java
@@ -3,7 +3,7 @@ package net.tomatentum.marinara.registry;
import java.util.HashSet;
import java.util.Set;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.interaction.InteractionType;
import net.tomatentum.marinara.interaction.ident.InteractionIdentifier;
diff --git a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionRegistry.java b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionRegistry.java
index 6314b88..be5678d 100644
--- a/lib/src/main/java/net/tomatentum/marinara/registry/InteractionRegistry.java
+++ b/lib/src/main/java/net/tomatentum/marinara/registry/InteractionRegistry.java
@@ -7,7 +7,7 @@ import java.util.List;
import java.util.Optional;
import java.util.Set;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import net.tomatentum.marinara.Marinara;
import net.tomatentum.marinara.interaction.InteractionHandler;
@@ -66,7 +66,6 @@ public class InteractionRegistry {
.toArray(SlashCommandDefinition[]::new);
marinara.getWrapper().getRegisterer().register(defs);
- logger.info("Registered all SlashCommands");
}
public void handle(Object context) {
diff --git a/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java b/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java
index bf883db..54eb77b 100644
--- a/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java
+++ b/lib/src/main/java/net/tomatentum/marinara/util/LoggerUtil.java
@@ -1,21 +1,14 @@
package net.tomatentum.marinara.util;
-import java.util.Properties;
-
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.simple.SimpleLogger;
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.ProviderUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.helpers.NOPLoggerFactory;
public class LoggerUtil {
public static Logger getLogger(String name) {
- if (ProviderUtil.hasProviders()) {
- return LogManager.getLogger(name);
- }else
- return new SimpleLogger(name, Level.DEBUG, true, false, true, true, "yyyy-MM-dd HH:mm:ss.SSSZ", null,
- new PropertiesUtil(new Properties()), System.out);
+ if (LoggerFactory.getILoggerFactory() instanceof NOPLoggerFactory)
+ return new SimpleLogger(name);
+ return LoggerFactory.getLogger(name);
}
public static Logger getLogger(Class> clazz) {
diff --git a/lib/src/main/java/net/tomatentum/marinara/util/ReflectionUtil.java b/lib/src/main/java/net/tomatentum/marinara/util/ReflectionUtil.java
index 9446e8f..5bda90f 100644
--- a/lib/src/main/java/net/tomatentum/marinara/util/ReflectionUtil.java
+++ b/lib/src/main/java/net/tomatentum/marinara/util/ReflectionUtil.java
@@ -102,6 +102,6 @@ public final class ReflectionUtil {
}
public static String getFullMethodName(Method method) {
- return method.getClass().getName() + "." + method.getName();
+ return method.getDeclaringClass().getName() + "." + method.getName();
}
}
diff --git a/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java b/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java
new file mode 100644
index 0000000..db6a2a5
--- /dev/null
+++ b/lib/src/main/java/net/tomatentum/marinara/util/SimpleLogger.java
@@ -0,0 +1,55 @@
+package net.tomatentum.marinara.util;
+
+import org.slf4j.Marker;
+import org.slf4j.event.Level;
+import org.slf4j.helpers.LegacyAbstractLogger;
+import org.slf4j.helpers.MessageFormatter;
+
+public class SimpleLogger extends LegacyAbstractLogger {
+
+ private String name;
+
+ public SimpleLogger(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean isTraceEnabled() {
+ return true;
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return true;
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return true;
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return true;
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+ return true;
+ }
+
+ @Override
+ protected String getFullyQualifiedCallerName() {
+ return this.name;
+ }
+
+ @Override
+ protected void handleNormalizedLoggingCall(Level level, Marker marker, String messagePattern, Object[] arguments,
+ Throwable throwable) {
+ String formatted = MessageFormatter.basicArrayFormat(messagePattern, arguments);
+ System.out.println("[%s] %s => %s".formatted(level, this.name, formatted));
+ }
+
+
+
+}
diff --git a/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandConverter.java b/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandConverter.java
index 5cfc76c..0183de4 100644
--- a/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandConverter.java
+++ b/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandConverter.java
@@ -4,12 +4,15 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.slf4j.Logger;
+
import net.tomatentum.marinara.interaction.commands.SlashCommandDefinition;
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOption;
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOptionChoice;
import net.tomatentum.marinara.interaction.ident.InteractionIdentifier;
import net.tomatentum.marinara.interaction.ident.RootCommandIdentifier;
import net.tomatentum.marinara.interaction.ident.SlashCommandIdentifier;
+import net.tomatentum.marinara.util.LoggerUtil;
public class CommandConverter {
@@ -17,6 +20,8 @@ public class CommandConverter(spec);
}
+ private Logger logger = LoggerUtil.getLogger(getClass());
+
private Spec spec;
CommandConverter(Spec spec) {
@@ -24,6 +29,7 @@ public class CommandConverter options = new ArrayList<>();
if (!def.isRootCommand()) {
Arrays.stream(def.getSubCommands()).map(this::convertSubCommand).forEach(options::add);
@@ -35,17 +41,20 @@ public class CommandConverter convertedSubCommands = Arrays.stream(subCommands).map(this::convertSubCommand).toList();
return spec.convertSubCommandGroup(identifier, convertedSubCommands);
}
private O convertSubCommand(SlashCommandIdentifier identifier) {
+ logger.debug("Converting subCommand {}", identifier);
List options = Arrays.stream(identifier.options()).map(this::convertOption).toList();
return spec.convertSubCommand(identifier, options);
}
private O convertOption(SlashCommandOption option) {
+ logger.debug("Converting option {}", option);
List choices = Arrays.stream(SlashCommandDefinition.getActualChoices(option)).map(spec::convertChoice).toList();
return spec.convertOption(option, choices);
}
diff --git a/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandRegisterer.java b/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandRegisterer.java
index 41e17b0..5cc8053 100644
--- a/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandRegisterer.java
+++ b/lib/src/main/java/net/tomatentum/marinara/wrapper/CommandRegisterer.java
@@ -4,7 +4,10 @@ import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
+import org.slf4j.Logger;
+
import net.tomatentum.marinara.interaction.commands.SlashCommandDefinition;
+import net.tomatentum.marinara.util.LoggerUtil;
import net.tomatentum.marinara.util.ObjectAggregator;
public class CommandRegisterer {
@@ -13,6 +16,8 @@ public class CommandRegisterer {
return new CommandRegisterer(strategy, converter);
}
+ private Logger logger = LoggerUtil.getLogger(getClass());
+
private Strategy strategy;
private CommandConverter converter;
@@ -36,6 +41,7 @@ public class CommandRegisterer {
serverCommands.forEach(strategy::registerServer);
strategy.registerGlobal(globalCommands);
+ logger.info("Registered all SlashCommands");
}
public interface Strategy {
diff --git a/lib/src/main/java/net/tomatentum/marinara/wrapper/IdentifierProvider.java b/lib/src/main/java/net/tomatentum/marinara/wrapper/IdentifierProvider.java
index 1d3f31d..1308222 100644
--- a/lib/src/main/java/net/tomatentum/marinara/wrapper/IdentifierProvider.java
+++ b/lib/src/main/java/net/tomatentum/marinara/wrapper/IdentifierProvider.java
@@ -7,7 +7,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import io.leangen.geantyref.GenericTypeReflector;
import net.tomatentum.marinara.interaction.ident.InteractionIdentifier;
diff --git a/wrapper/discord4j/build.gradle.kts b/wrapper/discord4j/build.gradle.kts
index dbbc261..49f2259 100644
--- a/wrapper/discord4j/build.gradle.kts
+++ b/wrapper/discord4j/build.gradle.kts
@@ -19,11 +19,12 @@ dependencies {
// Use JUnit Jupiter for testing.
testImplementation(libs.junit.jupiter)
testImplementation(libs.mockito)
+ testImplementation(libs.discord4j)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
- implementation(libs.log4j)
+ implementation(libs.slf4j)
implementation(libs.discord4j) {
-// exclude(module="discord4j-voice")
+ exclude(module="discord4j-voice")
}
implementation(libs.geantyref)
implementation(project(":lib"))
diff --git a/wrapper/discord4j/src/main/java/net/tomatentum/marinara/wrapper/discord4j/Discord4JWrapper.java b/wrapper/discord4j/src/main/java/net/tomatentum/marinara/wrapper/discord4j/Discord4JWrapper.java
index b14ce0f..d77dc3e 100644
--- a/wrapper/discord4j/src/main/java/net/tomatentum/marinara/wrapper/discord4j/Discord4JWrapper.java
+++ b/wrapper/discord4j/src/main/java/net/tomatentum/marinara/wrapper/discord4j/Discord4JWrapper.java
@@ -3,7 +3,7 @@ package net.tomatentum.marinara.wrapper.discord4j;
import java.util.List;
import java.util.function.Function;
-import org.apache.logging.log4j.Logger;
+import org.slf4j.Logger;
import discord4j.core.GatewayDiscordClient;
import discord4j.core.event.domain.interaction.InteractionCreateEvent;
diff --git a/wrapper/javacord/build.gradle.kts b/wrapper/javacord/build.gradle.kts
index 22b62c0..608bc3a 100644
--- a/wrapper/javacord/build.gradle.kts
+++ b/wrapper/javacord/build.gradle.kts
@@ -21,7 +21,7 @@ dependencies {
testImplementation(libs.mockito)
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
- implementation(libs.log4j)
+ implementation(libs.slf4j)
implementation(libs.javacord)
implementation(libs.geantyref)
implementation(project(":lib"))
diff --git a/wrapper/javacord/src/main/java/net/tomatentum/marinara/wrapper/javacord/JavacordWrapper.java b/wrapper/javacord/src/main/java/net/tomatentum/marinara/wrapper/javacord/JavacordWrapper.java
index 0390fc0..fa7a3f5 100644
--- a/wrapper/javacord/src/main/java/net/tomatentum/marinara/wrapper/javacord/JavacordWrapper.java
+++ b/wrapper/javacord/src/main/java/net/tomatentum/marinara/wrapper/javacord/JavacordWrapper.java
@@ -1,8 +1,8 @@
package net.tomatentum.marinara.wrapper.javacord;
-import org.apache.logging.log4j.Logger;
import org.javacord.api.DiscordApi;
import org.javacord.api.interaction.SlashCommandBuilder;
+import org.slf4j.Logger;
import net.tomatentum.marinara.wrapper.CommandConverter;
import net.tomatentum.marinara.wrapper.CommandRegisterer;