From a73f6cfadcc6772b7cf6f75c9119b63d812c185d Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Sat, 16 Mar 2024 10:43:37 +0100 Subject: [PATCH 1/7] Update TownyLogger to use Log4j 2.19.0 --- Towny/pom.xml | 2 +- .../com/palmergames/bukkit/towny/Towny.java | 2 +- .../palmergames/bukkit/towny/TownyLogger.java | 100 +++++++++--------- .../towny/command/TownyAdminCommand.java | 2 +- .../object/economy/GlobalAccountObserver.java | 8 +- 5 files changed, 56 insertions(+), 58 deletions(-) diff --git a/Towny/pom.xml b/Towny/pom.xml index 120695d7f0..5422e16ec2 100644 --- a/Towny/pom.xml +++ b/Towny/pom.xml @@ -129,7 +129,7 @@ org.apache.logging.log4j log4j-core - 2.22.1 + 2.19.0 provided diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java b/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java index 2da74fe65b..b0ebce86d7 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java @@ -234,7 +234,7 @@ public void loadFoundation(boolean reload) { TownBlockTypeHandler.initialize(); // Initialize the special log4j hook logger. - TownyLogger.getInstance(); + TownyLogger.initialize(); // Clear all objects from the TownyUniverse class. townyUniverse.clearAllObjects(); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index 1b07819958..e2543518a1 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -1,13 +1,13 @@ package com.palmergames.bukkit.towny; import com.palmergames.bukkit.towny.object.economy.Account; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.FileAppender; -import org.apache.logging.log4j.core.config.AppenderRef; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.layout.PatternLayout; @@ -18,26 +18,28 @@ /** * @author Articdive */ -public class TownyLogger { - private static final TownyLogger instance = new TownyLogger(); - private static final Logger LOGGER_MONEY = LogManager.getLogger("com.palmergames.bukkit.towny.money"); - - @SuppressWarnings("deprecation") // Until Mojang updates their log4j included with minecraft we have to use the deprecated methods. +public final class TownyLogger { private TownyLogger() { + + } + + private static final Logger LOGGER_MONEY = LogManager.getLogger("com.palmergames.bukkit.towny.money"); + + public static void initialize() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); // Get log location. String logFolderName = TownyUniverse.getInstance().getRootFolder() + File.separator + "logs"; - + Appender townyMainAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "towny.log") - .withName("Towny-Main-Log") + .setName("Towny-Main-Log") .withAppend(TownySettings.isAppendingToLog()) - .withIgnoreExceptions(false) - .withBufferedIo(false) - .withBufferSize(0) + .setIgnoreExceptions(false) + .setBufferedIo(false) + .setBufferSize(0) .setConfiguration(config) - .withLayout(PatternLayout.newBuilder() + .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) .withPattern("%d [%t]: %m%n") .withConfiguration(config) @@ -45,13 +47,13 @@ private TownyLogger() { .build(); Appender townyMoneyAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "money.csv") - .withName("Towny-Money") + .setName("Towny-Money") .withAppend(TownySettings.isAppendingToLog()) - .withIgnoreExceptions(false) - .withBufferedIo(false) - .withBufferSize(0) + .setIgnoreExceptions(false) + .setBufferedIo(false) + .setBufferSize(0) .setConfiguration(config) - .withLayout(PatternLayout.newBuilder() + .setLayout(PatternLayout.newBuilder() // The comma after the date is to seperate it in CSV, this is a really nice workaround // And avoids having to use apache-csv to make it work with Log4J .withCharset(StandardCharsets.UTF_8) @@ -61,13 +63,13 @@ private TownyLogger() { .build(); Appender townyDebugAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "debug.log") - .withName("Towny-Debug") + .setName("Towny-Debug") .withAppend(TownySettings.isAppendingToLog()) - .withIgnoreExceptions(false) - .withBufferedIo(false) - .withBufferSize(0) + .setIgnoreExceptions(false) + .setBufferedIo(false) + .setBufferSize(0) .setConfiguration(config) - .withLayout(PatternLayout.newBuilder() + .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) .withPattern("%d [%t]: %m%n") .withConfiguration(config) @@ -75,87 +77,83 @@ private TownyLogger() { .build(); Appender townyDatabaseAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "database.log") - .withName("Towny-Database") + .setName("Towny-Database") .withAppend(TownySettings.isAppendingToLog()) - .withIgnoreExceptions(false) - .withBufferedIo(false) - .withBufferSize(0) + .setIgnoreExceptions(false) + .setBufferedIo(false) + .setBufferSize(0) .setConfiguration(config) - .withLayout(PatternLayout.newBuilder() + .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) .withPattern("%d [%t]: %m%n") .withConfiguration(config) .build()) .build(); - + townyMainAppender.start(); townyMoneyAppender.start(); townyDebugAppender.start(); townyDatabaseAppender.start(); - + // Towny Main - LoggerConfig townyMainConfig = LoggerConfig.createLogger(true, Level.ALL, "Towny", null, new AppenderRef[0], null, config, null); + LoggerConfig townyMainConfig = LoggerConfig.newBuilder().withAdditivity(true).withLevel(Level.ALL).withLoggerName("Towny").withConfig(config).build(); townyMainConfig.addAppender(townyMainAppender, Level.ALL, null); config.addLogger(Towny.class.getName(), townyMainConfig); - + // Debug - LoggerConfig townyDebugConfig = LoggerConfig.createLogger(TownySettings.getDebug(), Level.ALL, "Towny-Debug", null, new AppenderRef[0], null, config, null); + LoggerConfig townyDebugConfig = LoggerConfig.newBuilder().withAdditivity(TownySettings.getDebug()).withLevel(Level.ALL).withLoggerName("Towny-Debug").withConfig(config).build(); townyDebugConfig.addAppender(townyDebugAppender, Level.ALL, null); config.addLogger("com.palmergames.bukkit.towny.debug", townyDebugConfig); - + // Money - LoggerConfig townyMoneyConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Money", null, new AppenderRef[0], null, config, null); + LoggerConfig townyMoneyConfig = LoggerConfig.newBuilder().withAdditivity(false).withLevel(Level.ALL).withLoggerName("Towny-Money").withConfig(config).build(); townyMoneyConfig.addAppender(townyMoneyAppender, Level.ALL, null); config.addLogger("com.palmergames.bukkit.towny.money", townyMoneyConfig); - + // Database - LoggerConfig townyDatabaseConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Database", null, new AppenderRef[0], null, config, null); + LoggerConfig townyDatabaseConfig = LoggerConfig.newBuilder().withAdditivity(false).withLevel(Level.ALL).withLoggerName("Towny-Database").withConfig(config).build(); townyDatabaseConfig.addAppender(townyDatabaseAppender, Level.ALL, null); - + ctx.updateLoggers(); } - - public void refreshDebugLogger() { + + public static void refreshDebugLogger() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig townyDebugConfig = config.getLoggerConfig("com.palmergames.bukkit.towny.debug"); townyDebugConfig.setAdditive(TownySettings.getDebug()); ctx.updateLoggers(); } - - public void logMoneyTransaction(Account a, double amount, Account b, String reason) { - + + public static void logMoneyTransaction(Account a, double amount, Account b, String reason) { + String sender; String receiver; - + if (a == null) { sender = "None"; } else { sender = a.getName(); } - + if (b == null) { receiver = "None"; } else { receiver = b.getName(); } - + if (reason == null) { LOGGER_MONEY.info(String.format("%s,%s,%s,%s", "Unknown Reason", sender, amount, receiver)); } else { LOGGER_MONEY.info(String.format("%s,%s,%s,%s", reason, sender, amount, receiver)); } } - - public void logMoneyTransaction(String a, double amount, String b, String reason) { + + public static void logMoneyTransaction(String a, double amount, String b, String reason) { if (reason == null) { LOGGER_MONEY.info(String.format("%s,%s,%s,%s", "Unknown Reason", a, amount, b)); } else { LOGGER_MONEY.info(String.format("%s,%s,%s,%s", reason, a, amount, b)); } } - - public static TownyLogger getInstance() { - return instance; - } } \ No newline at end of file diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/command/TownyAdminCommand.java b/Towny/src/main/java/com/palmergames/bukkit/towny/command/TownyAdminCommand.java index 3fb70ddfb6..6b8e062b6a 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/command/TownyAdminCommand.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/command/TownyAdminCommand.java @@ -2385,7 +2385,7 @@ private void adminToggleDevMode(CommandSender sender, Optional choice) private void adminToggleDebug(CommandSender sender, Optional choice) throws NoPermissionException { checkPermOrThrow(sender, PermissionNodes.TOWNY_COMMAND_TOWNYADMIN_TOGGLE_DEBUG.getNode()); TownySettings.setDebug(choice.orElse(!TownySettings.getDebug())); - TownyLogger.getInstance().refreshDebugLogger(); + TownyLogger.refreshDebugLogger(); TownyMessaging.sendMsg(sender, Translatable.of("msg_admin_toggle_debugmode", (TownySettings.getDebug() ? Translatable.literal(Colors.Green).append(Translatable.of("enabled")) : Translatable.literal(Colors.Red).append(Translatable.of("disabled"))))); } private void adminToggleTownWithDraw(CommandSender sender, Optional choice) throws NoPermissionException { diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/object/economy/GlobalAccountObserver.java b/Towny/src/main/java/com/palmergames/bukkit/towny/object/economy/GlobalAccountObserver.java index 45c08a840f..86aa0c8022 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/object/economy/GlobalAccountObserver.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/object/economy/GlobalAccountObserver.java @@ -11,12 +11,12 @@ public final class GlobalAccountObserver implements AccountObserver { @Override - public final void withdrew(Account account, double amount, String reason) { - TownyLogger.getInstance().logMoneyTransaction(account, amount, null, reason); + public void withdrew(Account account, double amount, String reason) { + TownyLogger.logMoneyTransaction(account, amount, null, reason); } @Override - public final void deposited(Account account, double amount, String reason) { - TownyLogger.getInstance().logMoneyTransaction(account, amount, null, reason); + public void deposited(Account account, double amount, String reason) { + TownyLogger.logMoneyTransaction(account, amount, null, reason); } } From e5f2304e1fad3b622a7360ca7b188928a74f152a Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Sat, 16 Mar 2024 10:51:50 +0100 Subject: [PATCH 2/7] Fix towny loggers not working, attach debug to standard logger. --- .../palmergames/bukkit/towny/TownyLogger.java | 40 +++++++++++++------ .../bukkit/towny/TownyMessaging.java | 3 +- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index e2543518a1..45b2e47742 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -24,6 +24,8 @@ private TownyLogger() { } private static final Logger LOGGER_MONEY = LogManager.getLogger("com.palmergames.bukkit.towny.money"); + + private static Appender townyDebugAppender; public static void initialize() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); @@ -45,6 +47,7 @@ public static void initialize() { .withConfiguration(config) .build()) .build(); + Appender townyMoneyAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "money.csv") .setName("Towny-Money") @@ -61,7 +64,8 @@ public static void initialize() { .withConfiguration(config) .build()) .build(); - Appender townyDebugAppender = FileAppender.newBuilder() + + townyDebugAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "debug.log") .setName("Towny-Debug") .withAppend(TownySettings.isAppendingToLog()) @@ -71,10 +75,11 @@ public static void initialize() { .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) - .withPattern("%d [%t]: %m%n") + .withPattern("%d [%t] [%C#%M:%L]: %m%n") .withConfiguration(config) .build()) .build(); + Appender townyDatabaseAppender = FileAppender.newBuilder() .withFileName(logFolderName + File.separator + "database.log") .setName("Towny-Database") @@ -91,19 +96,18 @@ public static void initialize() { .build(); townyMainAppender.start(); - townyMoneyAppender.start(); townyDebugAppender.start(); + townyMoneyAppender.start(); townyDatabaseAppender.start(); // Towny Main LoggerConfig townyMainConfig = LoggerConfig.newBuilder().withAdditivity(true).withLevel(Level.ALL).withLoggerName("Towny").withConfig(config).build(); - townyMainConfig.addAppender(townyMainAppender, Level.ALL, null); - config.addLogger(Towny.class.getName(), townyMainConfig); - - // Debug - LoggerConfig townyDebugConfig = LoggerConfig.newBuilder().withAdditivity(TownySettings.getDebug()).withLevel(Level.ALL).withLoggerName("Towny-Debug").withConfig(config).build(); - townyDebugConfig.addAppender(townyDebugAppender, Level.ALL, null); - config.addLogger("com.palmergames.bukkit.towny.debug", townyDebugConfig); + townyMainConfig.addAppender(townyMainAppender, Level.INFO, null); + if (TownySettings.getDebug()) { + townyMainConfig.addAppender(townyDebugAppender, Level.DEBUG, null); + } + // Spigot/Paper decided to name the loggers with their plugin's simple name. + config.addLogger("Towny", townyMainConfig); // Money LoggerConfig townyMoneyConfig = LoggerConfig.newBuilder().withAdditivity(false).withLevel(Level.ALL).withLoggerName("Towny-Money").withConfig(config).build(); @@ -119,9 +123,19 @@ public static void initialize() { public static void refreshDebugLogger() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); - Configuration config = ctx.getConfiguration(); - LoggerConfig townyDebugConfig = config.getLoggerConfig("com.palmergames.bukkit.towny.debug"); - townyDebugConfig.setAdditive(TownySettings.getDebug()); + LoggerConfig loggerConfig = ctx.getConfiguration().getLoggerConfig("Towny"); + Appender console = ctx.getConfiguration().getAppender("TerminalConsole"); + + if (TownySettings.getDebug()) { + // Make sure we don't add more appenders than necessary. + loggerConfig.removeAppender("Towny-Debug"); + loggerConfig.removeAppender("TerminalConsole"); + loggerConfig.addAppender(townyDebugAppender, Level.DEBUG, null); + loggerConfig.addAppender(console, Level.DEBUG, null); + } else { + loggerConfig.removeAppender("Towny-Debug"); + loggerConfig.removeAppender("TerminalConsole"); + } ctx.updateLoggers(); } diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java index 7e6aa11183..80d534ee48 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java @@ -55,7 +55,6 @@ public class TownyMessaging { private static final Logger LOGGER = LogManager.getLogger("Towny"); - private static final Logger LOGGER_DEBUG = LogManager.getLogger("com.palmergames.bukkit.towny.debug"); /* * NON-TRANSLATABLE MESSAGING METHODS @@ -180,7 +179,7 @@ public static void sendDevMsg(String[] msg) { */ public static void sendDebugMsg(String msg) { if (TownySettings.getDebug()) { - LOGGER_DEBUG.info(Colors.strip("[Towny] Debug: " + msg)); + LOGGER.debug(Colors.strip("[Towny] Debug: " + msg)); } sendDevMsg(msg); } From 643db8a5931742dc54a2714b30ef5a6928f08ef4 Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Sat, 16 Mar 2024 14:23:29 +0100 Subject: [PATCH 3/7] Back to Log4j 2.17.0 (1.16.5 & 1.17-compat) --- Towny/pom.xml | 2 +- .../palmergames/bukkit/towny/TownyLogger.java | 23 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Towny/pom.xml b/Towny/pom.xml index e228a262cc..8760634ca4 100644 --- a/Towny/pom.xml +++ b/Towny/pom.xml @@ -129,7 +129,7 @@ org.apache.logging.log4j log4j-core - 2.19.0 + 2.17.0 provided diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index 45b2e47742..5e09872f21 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -8,6 +8,7 @@ import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.FileAppender; +import org.apache.logging.log4j.core.config.AppenderRef; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.layout.PatternLayout; @@ -38,8 +39,8 @@ public static void initialize() { .setName("Towny-Main-Log") .withAppend(TownySettings.isAppendingToLog()) .setIgnoreExceptions(false) - .setBufferedIo(false) - .setBufferSize(0) + .withBufferedIo(false) + .withBufferSize(0) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) @@ -53,8 +54,8 @@ public static void initialize() { .setName("Towny-Money") .withAppend(TownySettings.isAppendingToLog()) .setIgnoreExceptions(false) - .setBufferedIo(false) - .setBufferSize(0) + .withBufferedIo(false) + .withBufferSize(0) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() // The comma after the date is to seperate it in CSV, this is a really nice workaround @@ -70,8 +71,8 @@ public static void initialize() { .setName("Towny-Debug") .withAppend(TownySettings.isAppendingToLog()) .setIgnoreExceptions(false) - .setBufferedIo(false) - .setBufferSize(0) + .withBufferedIo(false) + .withBufferSize(0) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) @@ -85,8 +86,8 @@ public static void initialize() { .setName("Towny-Database") .withAppend(TownySettings.isAppendingToLog()) .setIgnoreExceptions(false) - .setBufferedIo(false) - .setBufferSize(0) + .withBufferedIo(false) + .withBufferSize(0) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) @@ -101,7 +102,7 @@ public static void initialize() { townyDatabaseAppender.start(); // Towny Main - LoggerConfig townyMainConfig = LoggerConfig.newBuilder().withAdditivity(true).withLevel(Level.ALL).withLoggerName("Towny").withConfig(config).build(); + LoggerConfig townyMainConfig = LoggerConfig.createLogger(true, Level.ALL, "Towny", null, new AppenderRef[0], null, config, null); townyMainConfig.addAppender(townyMainAppender, Level.INFO, null); if (TownySettings.getDebug()) { townyMainConfig.addAppender(townyDebugAppender, Level.DEBUG, null); @@ -110,12 +111,12 @@ public static void initialize() { config.addLogger("Towny", townyMainConfig); // Money - LoggerConfig townyMoneyConfig = LoggerConfig.newBuilder().withAdditivity(false).withLevel(Level.ALL).withLoggerName("Towny-Money").withConfig(config).build(); + LoggerConfig townyMoneyConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Money", null, new AppenderRef[0], null, config, null); townyMoneyConfig.addAppender(townyMoneyAppender, Level.ALL, null); config.addLogger("com.palmergames.bukkit.towny.money", townyMoneyConfig); // Database - LoggerConfig townyDatabaseConfig = LoggerConfig.newBuilder().withAdditivity(false).withLevel(Level.ALL).withLoggerName("Towny-Database").withConfig(config).build(); + LoggerConfig townyDatabaseConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Database", null, new AppenderRef[0], null, config, null); townyDatabaseConfig.addAppender(townyDatabaseAppender, Level.ALL, null); ctx.updateLoggers(); From 5e772d5a4d76e322a87ffd959065c7770bc0b692 Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Thu, 28 Mar 2024 12:36:02 +0100 Subject: [PATCH 4/7] Remove Class, Method and Line Number in debug logging. --- .../src/main/java/com/palmergames/bukkit/towny/TownyLogger.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index 5e09872f21..bc079fb306 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -76,7 +76,7 @@ public static void initialize() { .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) - .withPattern("%d [%t] [%C#%M:%L]: %m%n") + .withPattern("%d [%t]: %m%n") .withConfiguration(config) .build()) .build(); From efcf867c1fb1808cbeef6568af8b59170c8b666f Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Fri, 29 Mar 2024 16:15:01 +0100 Subject: [PATCH 5/7] Last tweaks to the loggers. --- .../palmergames/bukkit/towny/TownyLogger.java | 25 +++++++++++++------ .../bukkit/towny/TownyMessaging.java | 5 ++-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index bc079fb306..85795e13c7 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -6,11 +6,14 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.Appender; +import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.FileAppender; import org.apache.logging.log4j.core.config.AppenderRef; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.core.filter.CompositeFilter; +import org.apache.logging.log4j.core.filter.LevelMatchFilter; import org.apache.logging.log4j.core.layout.PatternLayout; import java.io.File; @@ -41,10 +44,11 @@ public static void initialize() { .setIgnoreExceptions(false) .withBufferedIo(false) .withBufferSize(0) + .withLocking(false) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) - .withPattern("%d [%t]: %m%n") + .withPattern("%d{dd MMM yyyy HH:mm:ss} [%t]: %m%n") .withConfiguration(config) .build()) .build(); @@ -56,6 +60,7 @@ public static void initialize() { .setIgnoreExceptions(false) .withBufferedIo(false) .withBufferSize(0) + .withLocking(false) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() // The comma after the date is to seperate it in CSV, this is a really nice workaround @@ -73,10 +78,11 @@ public static void initialize() { .setIgnoreExceptions(false) .withBufferedIo(false) .withBufferSize(0) + .withLocking(false) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) - .withPattern("%d [%t]: %m%n") + .withPattern("%d{dd MMM yyyy HH:mm:ss} [%t]: %m%n") .withConfiguration(config) .build()) .build(); @@ -88,10 +94,11 @@ public static void initialize() { .setIgnoreExceptions(false) .withBufferedIo(false) .withBufferSize(0) + .withLocking(false) .setConfiguration(config) .setLayout(PatternLayout.newBuilder() .withCharset(StandardCharsets.UTF_8) - .withPattern("%d [%t]: %m%n") + .withPattern("%d{dd MMM yyyy HH:mm:ss} [%t]: %m%n") .withConfiguration(config) .build()) .build(); @@ -104,9 +111,6 @@ public static void initialize() { // Towny Main LoggerConfig townyMainConfig = LoggerConfig.createLogger(true, Level.ALL, "Towny", null, new AppenderRef[0], null, config, null); townyMainConfig.addAppender(townyMainAppender, Level.INFO, null); - if (TownySettings.getDebug()) { - townyMainConfig.addAppender(townyDebugAppender, Level.DEBUG, null); - } // Spigot/Paper decided to name the loggers with their plugin's simple name. config.addLogger("Towny", townyMainConfig); @@ -120,6 +124,7 @@ public static void initialize() { townyDatabaseConfig.addAppender(townyDatabaseAppender, Level.ALL, null); ctx.updateLoggers(); + refreshDebugLogger(); } public static void refreshDebugLogger() { @@ -132,7 +137,13 @@ public static void refreshDebugLogger() { loggerConfig.removeAppender("Towny-Debug"); loggerConfig.removeAppender("TerminalConsole"); loggerConfig.addAppender(townyDebugAppender, Level.DEBUG, null); - loggerConfig.addAppender(console, Level.DEBUG, null); + // only accept debug and trace messages for the debug console. + loggerConfig.addAppender(console, Level.DEBUG, CompositeFilter.createFilters( + new Filter[]{ + LevelMatchFilter.newBuilder().setLevel(Level.DEBUG).setOnMatch(Filter.Result.ACCEPT).setOnMismatch(Filter.Result.DENY).build(), + LevelMatchFilter.newBuilder().setLevel(Level.TRACE).setOnMatch(Filter.Result.ACCEPT).setOnMismatch(Filter.Result.DENY).build() + } + )); } else { loggerConfig.removeAppender("Towny-Debug"); loggerConfig.removeAppender("TerminalConsole"); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java index 80d534ee48..bf1800e4cd 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyMessaging.java @@ -172,14 +172,13 @@ public static void sendDevMsg(String[] msg) { } /** - * Sends a message to the log and console - * prefixed by [Towny] Debug: + * Sends a message to the debug logger (and hence the console and debug.log) * * @param msg the message to be sent */ public static void sendDebugMsg(String msg) { if (TownySettings.getDebug()) { - LOGGER.debug(Colors.strip("[Towny] Debug: " + msg)); + LOGGER.debug(Colors.strip(msg)); } sendDevMsg(msg); } From a85cf6a4b4b703967fd19a589ccc52468836146e Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Fri, 29 Mar 2024 16:50:33 +0100 Subject: [PATCH 6/7] Update log4j2 version. Update database logger. --- Towny/pom.xml | 2 +- .../palmergames/bukkit/towny/TownyLogger.java | 1 + .../bukkit/towny/db/TownyDatabaseHandler.java | 7 +++---- .../bukkit/towny/db/TownyFlatFileSource.java | 12 ++++++++---- .../bukkit/towny/db/TownySQLSource.java | 16 ++++++++++------ 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/Towny/pom.xml b/Towny/pom.xml index 8760634ca4..e6dc79f42a 100644 --- a/Towny/pom.xml +++ b/Towny/pom.xml @@ -129,7 +129,7 @@ org.apache.logging.log4j log4j-core - 2.17.0 + 2.23.1 provided diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index 85795e13c7..f07b1b0658 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -31,6 +31,7 @@ private TownyLogger() { private static Appender townyDebugAppender; + @SuppressWarnings("deprecation") public static void initialize() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java index 10df15acc8..556ea0e5e1 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java @@ -87,14 +87,13 @@ * @author ElgarL */ public abstract class TownyDatabaseHandler extends TownyDataSource { + private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); public static final SimpleDateFormat BACKUP_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH_mm_ssZ"); final String rootFolderPath; final String dataFolderPath; final String settingsFolderPath; final String logFolderPath; final String backupFolderPath; - - Logger logger = LogManager.getLogger(TownyDatabaseHandler.class); protected final Queue queryQueue = new ConcurrentLinkedQueue<>(); private final ScheduledTask task; @@ -343,13 +342,13 @@ public void removeTownBlock(TownBlock townBlock) { Town town = townBlock.getTownOrNull(); if (town == null) // Log as error because TownBlocks *must* have a town. - logger.error(String.format("The TownBlock at (%s, %d, %d) is not registered to a town.", townBlock.getWorld().getName(), townBlock.getX(), townBlock.getZ())); + LOGGER_DATABASE.error(String.format("The TownBlock at (%s, %d, %d) is not registered to a town.", townBlock.getWorld().getName(), townBlock.getX(), townBlock.getZ())); TownPreUnclaimEvent event = new TownPreUnclaimEvent(town, townBlock); if (BukkitTools.isEventCancelled(event)) { // Log as Warn because the event has been processed if (!event.getCancelMessage().isEmpty()) - logger.warn(event.getCancelMessage()); + LOGGER_DATABASE.warn(event.getCancelMessage()); return; } diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java index eb2e2de6ad..5a5b698b55 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java @@ -34,6 +34,9 @@ import com.palmergames.bukkit.util.BukkitTools; import com.palmergames.util.FileMgmt; import com.palmergames.util.StringMgmt; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.bukkit.Bukkit; import org.bukkit.World; import java.io.BufferedReader; @@ -60,6 +63,7 @@ import java.util.stream.Collectors; public final class TownyFlatFileSource extends TownyDatabaseHandler { + private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); private final String newLine = System.lineSeparator(); @@ -2101,7 +2105,7 @@ public boolean savePlotGroup(PlotGroup group) { list.add("town=" + group.getTown().getName()); list.add("metadata=" + serializeMetadata(group)); } catch (Exception e) { - logger.warn("An exception occurred while saving plot group " + Optional.ofNullable(group).map(g -> g.getUUID().toString()).orElse("null") + ": ", e); + LOGGER_DATABASE.warn("An exception occurred while saving plot group " + Optional.ofNullable(group).map(g -> g.getUUID().toString()).orElse("null") + ": ", e); } // Save file @@ -2529,14 +2533,14 @@ public boolean loadCooldowns() { try { data = new String(Files.readAllBytes(cooldownsFile), StandardCharsets.UTF_8); } catch (IOException e) { - logger.warn("An exception occurred when reading cooldowns.json", e); + LOGGER_DATABASE.warn("An exception occurred when reading cooldowns.json", e); return true; } try { CooldownTimerTask.getCooldowns().putAll(new Gson().fromJson(data, new TypeToken>(){}.getType())); } catch (JsonSyntaxException e) { - logger.warn("Could not load saved cooldowns due to a json syntax exception", e); + LOGGER_DATABASE.warn("Could not load saved cooldowns due to a json syntax exception", e); } return true; @@ -2554,7 +2558,7 @@ public boolean saveCooldowns() { try { Files.write(Paths.get(dataFolderPath).resolve("cooldowns.json"), new GsonBuilder().setPrettyPrinting().create().toJson(object).getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); } catch (IOException e) { - logger.warn("An exception occurred when writing cooldowns.json", e); + LOGGER_DATABASE.warn("An exception occurred when writing cooldowns.json", e); } }); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java index fe0fcaec60..09f6ca1c12 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java @@ -35,6 +35,9 @@ import com.palmergames.util.StringMgmt; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.bukkit.Bukkit; import org.bukkit.World; import org.jetbrains.annotations.ApiStatus; @@ -62,6 +65,7 @@ import java.util.stream.Collectors; public final class TownySQLSource extends TownyDatabaseHandler { + private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); private final String tb_prefix; @@ -131,7 +135,7 @@ public TownySQLSource(Towny plugin, TownyUniverse universe) { // Initialize database schema. SQLSchema.initTables(connection); } catch (SQLException e) { - logger.error("Failed to connect to the database", e); + LOGGER_DATABASE.error("Failed to connect to the database", e); } } @@ -407,7 +411,7 @@ public boolean cleanup() { try (Connection connection = getConnection()) { SQLSchema.cleanup(connection); } catch (SQLException e) { - logger.warn("An exception occurred when cleaning up SQL schema.", e); + LOGGER_DATABASE.warn("An exception occurred when cleaning up SQL schema.", e); } return true; @@ -609,14 +613,14 @@ public boolean loadPlotGroupList() { try { universe.newPlotGroupInternal(UUID.fromString(rs.getString("groupID"))); } catch (IllegalArgumentException e) { - logger.warn("ID for plot group is not a valid uuid, skipped loading plot group {}", rs.getString("groupID")); + LOGGER_DATABASE.warn("ID for plot group is not a valid uuid, skipped loading plot group {}", rs.getString("groupID")); } } return true; } catch (SQLException e) { - logger.error("An exception occurred while loading plot group list", e); + LOGGER_DATABASE.error("An exception occurred while loading plot group list", e); } return false; @@ -635,7 +639,7 @@ public boolean loadJailList() { return true; } catch (Exception e) { - logger.error("An exception occurred while loading jail list", e); + LOGGER_DATABASE.error("An exception occurred while loading jail list", e); } return false; @@ -1953,7 +1957,7 @@ public boolean loadCooldowns() { while (resultSet.next()) CooldownTimerTask.getCooldowns().put(resultSet.getString("key"), resultSet.getLong("expiry")); } catch (SQLException e) { - logger.warn("An exception occurred when loading cooldowns", e); + LOGGER_DATABASE.warn("An exception occurred when loading cooldowns", e); return false; } From e4396ec2bb94ac667be8af8f586edb2ebdeefdf3 Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Fri, 29 Mar 2024 16:58:25 +0100 Subject: [PATCH 7/7] Remove database logger. --- .../palmergames/bukkit/towny/TownyLogger.java | 40 +++++++++---------- .../bukkit/towny/db/TownyDatabaseHandler.java | 5 +-- .../bukkit/towny/db/TownyFlatFileSource.java | 10 ++--- .../bukkit/towny/db/TownySQLSource.java | 14 +++---- 4 files changed, 32 insertions(+), 37 deletions(-) diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java index f07b1b0658..e280d68db9 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyLogger.java @@ -27,7 +27,7 @@ private TownyLogger() { } - private static final Logger LOGGER_MONEY = LogManager.getLogger("com.palmergames.bukkit.towny.money"); + private static final Logger LOGGER_MONEY = LogManager.getLogger("Towny-Money"); private static Appender townyDebugAppender; @@ -88,26 +88,26 @@ public static void initialize() { .build()) .build(); - Appender townyDatabaseAppender = FileAppender.newBuilder() - .withFileName(logFolderName + File.separator + "database.log") - .setName("Towny-Database") - .withAppend(TownySettings.isAppendingToLog()) - .setIgnoreExceptions(false) - .withBufferedIo(false) - .withBufferSize(0) - .withLocking(false) - .setConfiguration(config) - .setLayout(PatternLayout.newBuilder() - .withCharset(StandardCharsets.UTF_8) - .withPattern("%d{dd MMM yyyy HH:mm:ss} [%t]: %m%n") - .withConfiguration(config) - .build()) - .build(); +// Appender townyDatabaseAppender = FileAppender.newBuilder() +// .withFileName(logFolderName + File.separator + "database.log") +// .setName("Towny-Database") +// .withAppend(TownySettings.isAppendingToLog()) +// .setIgnoreExceptions(false) +// .withBufferedIo(false) +// .withBufferSize(0) +// .withLocking(false) +// .setConfiguration(config) +// .setLayout(PatternLayout.newBuilder() +// .withCharset(StandardCharsets.UTF_8) +// .withPattern("%d{dd MMM yyyy HH:mm:ss} [%t]: %m%n") +// .withConfiguration(config) +// .build()) +// .build(); townyMainAppender.start(); townyDebugAppender.start(); townyMoneyAppender.start(); - townyDatabaseAppender.start(); +// townyDatabaseAppender.start(); // Towny Main LoggerConfig townyMainConfig = LoggerConfig.createLogger(true, Level.ALL, "Towny", null, new AppenderRef[0], null, config, null); @@ -118,11 +118,11 @@ public static void initialize() { // Money LoggerConfig townyMoneyConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Money", null, new AppenderRef[0], null, config, null); townyMoneyConfig.addAppender(townyMoneyAppender, Level.ALL, null); - config.addLogger("com.palmergames.bukkit.towny.money", townyMoneyConfig); + config.addLogger("Towny-Money", townyMoneyConfig); // Database - LoggerConfig townyDatabaseConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Database", null, new AppenderRef[0], null, config, null); - townyDatabaseConfig.addAppender(townyDatabaseAppender, Level.ALL, null); +// LoggerConfig townyDatabaseConfig = LoggerConfig.createLogger(false, Level.ALL, "Towny-Database", null, new AppenderRef[0], null, config, null); +// townyDatabaseConfig.addAppender(townyDatabaseAppender, Level.ALL, null); ctx.updateLoggers(); refreshDebugLogger(); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java index 556ea0e5e1..1f9f48882c 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyDatabaseHandler.java @@ -87,7 +87,6 @@ * @author ElgarL */ public abstract class TownyDatabaseHandler extends TownyDataSource { - private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); public static final SimpleDateFormat BACKUP_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH_mm_ssZ"); final String rootFolderPath; final String dataFolderPath; @@ -342,13 +341,13 @@ public void removeTownBlock(TownBlock townBlock) { Town town = townBlock.getTownOrNull(); if (town == null) // Log as error because TownBlocks *must* have a town. - LOGGER_DATABASE.error(String.format("The TownBlock at (%s, %d, %d) is not registered to a town.", townBlock.getWorld().getName(), townBlock.getX(), townBlock.getZ())); + plugin.getLogger().severe(String.format("The TownBlock at (%s, %d, %d) is not registered to a town.", townBlock.getWorld().getName(), townBlock.getX(), townBlock.getZ())); TownPreUnclaimEvent event = new TownPreUnclaimEvent(town, townBlock); if (BukkitTools.isEventCancelled(event)) { // Log as Warn because the event has been processed if (!event.getCancelMessage().isEmpty()) - LOGGER_DATABASE.warn(event.getCancelMessage()); + plugin.getLogger().warning(event.getCancelMessage()); return; } diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java index 5a5b698b55..c097741b29 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownyFlatFileSource.java @@ -63,8 +63,6 @@ import java.util.stream.Collectors; public final class TownyFlatFileSource extends TownyDatabaseHandler { - private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); - private final String newLine = System.lineSeparator(); public TownyFlatFileSource(Towny plugin, TownyUniverse universe) { @@ -2105,7 +2103,7 @@ public boolean savePlotGroup(PlotGroup group) { list.add("town=" + group.getTown().getName()); list.add("metadata=" + serializeMetadata(group)); } catch (Exception e) { - LOGGER_DATABASE.warn("An exception occurred while saving plot group " + Optional.ofNullable(group).map(g -> g.getUUID().toString()).orElse("null") + ": ", e); + plugin.getLogger().log(Level.WARNING, "An exception occurred while saving plot group " + Optional.ofNullable(group).map(g -> g.getUUID().toString()).orElse("null") + ": ", e); } // Save file @@ -2533,14 +2531,14 @@ public boolean loadCooldowns() { try { data = new String(Files.readAllBytes(cooldownsFile), StandardCharsets.UTF_8); } catch (IOException e) { - LOGGER_DATABASE.warn("An exception occurred when reading cooldowns.json", e); + plugin.getLogger().log(Level.WARNING, "An exception occurred when reading cooldowns.json", e); return true; } try { CooldownTimerTask.getCooldowns().putAll(new Gson().fromJson(data, new TypeToken>(){}.getType())); } catch (JsonSyntaxException e) { - LOGGER_DATABASE.warn("Could not load saved cooldowns due to a json syntax exception", e); + plugin.getLogger().log(Level.WARNING, "Could not load saved cooldowns due to a json syntax exception", e); } return true; @@ -2558,7 +2556,7 @@ public boolean saveCooldowns() { try { Files.write(Paths.get(dataFolderPath).resolve("cooldowns.json"), new GsonBuilder().setPrettyPrinting().create().toJson(object).getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING); } catch (IOException e) { - LOGGER_DATABASE.warn("An exception occurred when writing cooldowns.json", e); + plugin.getLogger().log(Level.WARNING, "An exception occurred when writing cooldowns.json", e); } }); diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java index 09f6ca1c12..4144b09048 100644 --- a/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java +++ b/Towny/src/main/java/com/palmergames/bukkit/towny/db/TownySQLSource.java @@ -65,8 +65,6 @@ import java.util.stream.Collectors; public final class TownySQLSource extends TownyDatabaseHandler { - private static final Logger LOGGER_DATABASE = LogManager.getLogger("Towny-Database"); - private final String tb_prefix; private final HikariDataSource hikariDataSource; @@ -135,7 +133,7 @@ public TownySQLSource(Towny plugin, TownyUniverse universe) { // Initialize database schema. SQLSchema.initTables(connection); } catch (SQLException e) { - LOGGER_DATABASE.error("Failed to connect to the database", e); + plugin.getLogger().log(Level.SEVERE, "Failed to connect to the database", e); } } @@ -411,7 +409,7 @@ public boolean cleanup() { try (Connection connection = getConnection()) { SQLSchema.cleanup(connection); } catch (SQLException e) { - LOGGER_DATABASE.warn("An exception occurred when cleaning up SQL schema.", e); + plugin.getLogger().log(Level.WARNING, "An exception occurred when cleaning up SQL schema.", e); } return true; @@ -613,14 +611,14 @@ public boolean loadPlotGroupList() { try { universe.newPlotGroupInternal(UUID.fromString(rs.getString("groupID"))); } catch (IllegalArgumentException e) { - LOGGER_DATABASE.warn("ID for plot group is not a valid uuid, skipped loading plot group {}", rs.getString("groupID")); + plugin.getLogger().log(Level.WARNING, "ID for plot group is not a valid uuid, skipped loading plot group {}", rs.getString("groupID")); } } return true; } catch (SQLException e) { - LOGGER_DATABASE.error("An exception occurred while loading plot group list", e); + plugin.getLogger().log(Level.SEVERE, "An exception occurred while loading plot group list", e); } return false; @@ -639,7 +637,7 @@ public boolean loadJailList() { return true; } catch (Exception e) { - LOGGER_DATABASE.error("An exception occurred while loading jail list", e); + plugin.getLogger().log(Level.SEVERE, "An exception occurred while loading jail list", e); } return false; @@ -1957,7 +1955,7 @@ public boolean loadCooldowns() { while (resultSet.next()) CooldownTimerTask.getCooldowns().put(resultSet.getString("key"), resultSet.getLong("expiry")); } catch (SQLException e) { - LOGGER_DATABASE.warn("An exception occurred when loading cooldowns", e); + plugin.getLogger().log(Level.WARNING, "An exception occurred when loading cooldowns", e); return false; }