diff --git a/bot-database/build.gradle.kts b/bot-database/build.gradle.kts index ee3ea09..8eccf32 100644 --- a/bot-database/build.gradle.kts +++ b/bot-database/build.gradle.kts @@ -10,5 +10,5 @@ dependencies { api(libs.annotations) implementation(libs.sqlite) implementation(libs.hikari) - implementation(libs.log4j2.api) + implementation(libs.slf4j) } \ No newline at end of file diff --git a/bot-database/src/main/java/eu/jonahbauer/chat/bot/database/impl/Helper.java b/bot-database/src/main/java/eu/jonahbauer/chat/bot/database/impl/Helper.java index 0c8c287..f71e23c 100644 --- a/bot-database/src/main/java/eu/jonahbauer/chat/bot/database/impl/Helper.java +++ b/bot-database/src/main/java/eu/jonahbauer/chat/bot/database/impl/Helper.java @@ -6,9 +6,9 @@ import eu.jonahbauer.chat.bot.database.annotations.Table; import lombok.Lombok; import lombok.SneakyThrows; import lombok.experimental.UtilityClass; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -121,7 +121,7 @@ public class Helper { }; - private static final @NotNull Logger log = LogManager.getLogger("eu.jonahbauer.chat.bot.database.SQL"); + private static final @NotNull Logger log = LoggerFactory.getLogger("eu.jonahbauer.chat.bot.database.SQL"); public static void logSqlStatement(@NotNull String sql) { log.debug(sql); } diff --git a/bot-database/src/main/java/module-info.java b/bot-database/src/main/java/module-info.java index 5bd2607..b39af01 100644 --- a/bot-database/src/main/java/module-info.java +++ b/bot-database/src/main/java/module-info.java @@ -5,7 +5,7 @@ module eu.jonahbauer.chat.bot.database { requires transitive java.sql; requires org.xerial.sqlitejdbc; requires com.zaxxer.hikari; - requires org.apache.logging.log4j; + requires org.slf4j; requires static lombok; requires static transitive org.jetbrains.annotations; diff --git a/bots/ping-bot/src/main/java/module-info.java b/bots/ping-bot/src/main/java/module-info.java index 59fc4dc..9f7c303 100644 --- a/bots/ping-bot/src/main/java/module-info.java +++ b/bots/ping-bot/src/main/java/module-info.java @@ -3,7 +3,7 @@ import eu.jonahbauer.chat.bot.ping.PingBot; module eu.jonahbauer.chat.bot.ping { requires eu.jonahbauer.chat.bot.api; - requires org.apache.logging.log4j; + requires org.slf4j; requires static lombok; provides ChatBot with PingBot; diff --git a/buildSrc/src/main/kotlin/chat-bot.bot-conventions.gradle.kts b/buildSrc/src/main/kotlin/chat-bot.bot-conventions.gradle.kts index 55cfc6a..a250a7d 100644 --- a/buildSrc/src/main/kotlin/chat-bot.bot-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/chat-bot.bot-conventions.gradle.kts @@ -9,7 +9,7 @@ val libs = versionCatalogs.named("libs") dependencies { implementation(project(":bot-api")) - implementation(libs.findLibrary("log4j2-api").get()) + implementation(libs.findLibrary("slf4j").get()) } tasks.withType { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 57b09b3..d7c731d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,8 +3,9 @@ annotations = "24.1.0" hikari = "5.1.0" jackson = "2.16.1" junit = "5.10.2" -log4j2 = "2.22.1" +logback = "1.5.3" lombok = "1.18.30" +slf4j = "2.0.12" sqlite = "3.44.1.0" [libraries] @@ -13,14 +14,12 @@ hikari = { module = "com.zaxxer:HikariCP", version.ref = "hikari" } jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson"} jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson"} jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson"} +logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" } junit-jupiter = { module = "org.junit.jupiter:junit-jupiter" } -log4j2-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j2"} -log4j2-core = { module = "org.apache.logging.log4j:log4j-core", version.ref = "log4j2"} -log4j2-slf4j = { module = "org.apache.logging.log4j:log4j-slf4j2-impl", version.ref = "log4j2"} lombok = { module = "org.projectlombok:lombok", version.ref = "lombok" } +slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } sqlite = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite"} [bundles] -jackson = ["jackson-databind", "jackson-annotations", "jackson-datatype-jsr310"] -log4j2 = ["log4j2-api", "log4j2-core", "log4j2-slf4j"] +jackson = ["jackson-databind", "jackson-annotations", "jackson-datatype-jsr310"] \ No newline at end of file diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 2e878ca..9f81133 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -11,8 +11,10 @@ val bots = project(":bots").subprojects dependencies { implementation(project(":bot-api")) implementation(project(":management")) - implementation(libs.bundles.log4j2) implementation(libs.bundles.jackson) + implementation(libs.slf4j) + + runtimeOnly(libs.logback) bots.forEach { implementation(project(it.path)) diff --git a/server/src/main/java/eu/jonahbauer/chat/server/Config.java b/server/src/main/java/eu/jonahbauer/chat/server/Config.java index 8ebfa4c..bbaaa04 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/Config.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/Config.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import eu.jonahbauer.chat.bot.config.BotConfig; import eu.jonahbauer.chat.server.bot.BotConfigDeserializer; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -13,6 +14,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; +@Slf4j public record Config( @NotNull Account account, @NotNull Set<@NotNull String> channels, @@ -40,6 +42,8 @@ public record Config( public static @NotNull Config read(@NotNull URL url) throws IOException { var mapper = new ObjectMapper(); return mapper.readValue(url, Config.class); + log.info("Loading configuration from " + url); + } public Config { diff --git a/server/src/main/java/eu/jonahbauer/chat/server/bot/ChatBotSupervisor.java b/server/src/main/java/eu/jonahbauer/chat/server/bot/ChatBotSupervisor.java index b9b3f74..115220d 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/bot/ChatBotSupervisor.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/bot/ChatBotSupervisor.java @@ -10,7 +10,7 @@ import eu.jonahbauer.chat.server.management.impl.ChatBotManager; import eu.jonahbauer.chat.server.management.impl.ChatBotSupport; import eu.jonahbauer.chat.server.socket.SocketSupervisor; import eu.jonahbauer.chat.server.util.Lazy; -import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Blocking; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NonBlocking; @@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; -@Log4j2 +@Slf4j public final class ChatBotSupervisor implements AutoCloseable { private static final Duration POST_EXPIRATION = Duration.ofSeconds(2); private static final int MESSAGE_QUEUE_SIZE = 10; diff --git a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/AdvancedMBean.java b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/AdvancedMBean.java index 7165948..6557b97 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/AdvancedMBean.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/AdvancedMBean.java @@ -4,7 +4,7 @@ import eu.jonahbauer.chat.server.management.annotations.ManagedAttribute; import eu.jonahbauer.chat.server.management.annotations.ManagedBean; import eu.jonahbauer.chat.server.management.annotations.ManagedOperation; import eu.jonahbauer.chat.server.management.annotations.ManagedParameter; -import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -16,7 +16,7 @@ import java.util.List; import java.util.Locale; import java.util.function.Function; -@Log4j2 +@Slf4j class AdvancedMBean extends StandardMBean { public AdvancedMBean(@NotNull Object implementation) { super(implementation, null, true); diff --git a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/ChatBotSupport.java b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/ChatBotSupport.java index 1d7442b..4d552e7 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/ChatBotSupport.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/ChatBotSupport.java @@ -5,14 +5,14 @@ import eu.jonahbauer.chat.server.bot.ChatBotSupervisor; import eu.jonahbauer.chat.server.management.BotConfigSupport; import eu.jonahbauer.chat.server.management.ChatBotSupportMXBean; import lombok.Getter; -import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import java.lang.management.ManagementFactory; import java.util.Objects; @Getter -@Log4j2 +@Slf4j public final class ChatBotSupport implements ChatBotSupportMXBean { private final @NotNull ChatBotSupervisor supervisor; private final @NotNull String name; diff --git a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/SocketSupport.java b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/SocketSupport.java index bc71f8c..84d2947 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/management/impl/SocketSupport.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/management/impl/SocketSupport.java @@ -4,7 +4,7 @@ import eu.jonahbauer.chat.server.management.SocketState; import eu.jonahbauer.chat.server.management.SocketSupportMXBean; import eu.jonahbauer.chat.server.socket.SocketSupervisor; import lombok.Getter; -import lombok.extern.log4j.Log4j2; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -12,7 +12,7 @@ import java.lang.management.ManagementFactory; import java.util.Date; import java.util.Objects; -@Log4j2 +@Slf4j @Getter public final class SocketSupport implements SocketSupportMXBean { private final @NotNull SocketSupervisor supervisor; diff --git a/server/src/main/java/eu/jonahbauer/chat/server/socket/SocketSupervisor.java b/server/src/main/java/eu/jonahbauer/chat/server/socket/SocketSupervisor.java index 4e3dd1d..6545eb6 100644 --- a/server/src/main/java/eu/jonahbauer/chat/server/socket/SocketSupervisor.java +++ b/server/src/main/java/eu/jonahbauer/chat/server/socket/SocketSupervisor.java @@ -12,8 +12,7 @@ import eu.jonahbauer.chat.server.management.impl.SocketManager; import eu.jonahbauer.chat.server.management.impl.SocketSupport; import eu.jonahbauer.chat.server.util.Lazy; import lombok.SneakyThrows; -import lombok.extern.log4j.Log4j2; -import org.apache.logging.log4j.Level; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -34,7 +33,7 @@ import java.util.concurrent.locks.ReentrantLock; import static eu.jonahbauer.chat.server.util.UrlTemplateProcessor.URL; -@Log4j2 +@Slf4j public final class SocketSupervisor implements Chat, AutoCloseable { private static final URI AUTH_SERVER = URI.create("https://chat.qed-verein.de/rubychat/account"); private static final String ORIGIN = "https://chat.qed-verein.de"; @@ -449,8 +448,11 @@ public final class SocketSupervisor implements Chat, AutoCloseable { try { var message = MAPPER.readValue(text, Message.class); - var level = message instanceof Message.Post || message instanceof Message.Ack ? Level.INFO : Level.DEBUG; - log.log(level, "Received message: {}", message); + if (message instanceof Message.Post) { + log.info("Received message: {}", message); + } else { + log.debug("Received message: {}", message); + } if (message instanceof Message.Post post) { delay = post.id() + 1; diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index b2f120d..c992f54 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -10,8 +10,8 @@ module eu.jonahbauer.chat.server { requires eu.jonahbauer.chat.server.management; requires java.management; requires java.net.http; - requires org.apache.logging.log4j; requires org.jetbrains.annotations; + requires org.slf4j; requires static lombok; } \ No newline at end of file diff --git a/server/src/main/resources/log4j2.xml b/server/src/main/resources/log4j2.xml deleted file mode 100644 index 8bb1efe..0000000 --- a/server/src/main/resources/log4j2.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/server/src/main/resources/logback.xml b/server/src/main/resources/logback.xml new file mode 100644 index 0000000..54bc8ce --- /dev/null +++ b/server/src/main/resources/logback.xml @@ -0,0 +1,11 @@ + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [%15.15t] %cyan(%c{1}) : %msg%n + + + + + + + \ No newline at end of file