diff --git a/src/main/java/com/Acrobot/ChestShop/ChestShop.java b/src/main/java/com/Acrobot/ChestShop/ChestShop.java index 05147a7..a2b1ce5 100644 --- a/src/main/java/com/Acrobot/ChestShop/ChestShop.java +++ b/src/main/java/com/Acrobot/ChestShop/ChestShop.java @@ -38,6 +38,15 @@ import com.Acrobot.ChestShop.Signs.RestrictedSign; import com.Acrobot.ChestShop.UUIDs.NameManager; import com.Acrobot.ChestShop.Updater.Updater; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.core.filter.AbstractFilter; +import org.apache.logging.log4j.message.Message; + import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.configuration.file.YamlConfiguration; @@ -82,6 +91,7 @@ public class ChestShop extends JavaPlugin { Configuration.pairFileAndClass(loadFile("config.yml"), Properties.class); Configuration.pairFileAndClass(loadFile("local.yml"), Messages.class); + turnOffDatabaseLogging(); handleMigrations(); itemDatabase = new ItemDatabase(); @@ -115,6 +125,46 @@ public class ChestShop extends JavaPlugin { startUpdater(); } + private void turnOffDatabaseLogging() { + LoggerContext ctx = (LoggerContext) LogManager.getContext(false); + org.apache.logging.log4j.core.config.Configuration config = ctx.getConfiguration(); + LoggerConfig loggerConfig = config.getLoggerConfig(""); + + loggerConfig.addFilter(new AbstractFilter() { + @Override + public Result filter(org.apache.logging.log4j.core.Logger logger, Level level, Marker marker, String msg, Object... params) { + return filter(logger.getName(), level); + } + + @Override + public Result filter(org.apache.logging.log4j.core.Logger logger, Level level, Marker marker, Object msg, Throwable t) { + return filter(logger.getName(), level); + } + + @Override + public Result filter(org.apache.logging.log4j.core.Logger logger, Level level, Marker marker, Message msg, Throwable t) { + return filter(logger.getName(), level); + } + + @Override + public Result filter(LogEvent event) { + return filter(event.getLoggerName(), event.getLevel()); + } + + private Result filter(String classname, Level level) { + if (level.isAtLeastAsSpecificAs(Level.ERROR) && !classname.contains("SqliteDatabaseType")) { + return Result.NEUTRAL; + } + + if (classname.contains("SqliteDatabaseType") || classname.contains("TableUtils")) { + return Result.DENY; + } else { + return Result.NEUTRAL; + } + } + }); + } + private void handleMigrations() { File versionFile = loadFile("version"); YamlConfiguration previousVersion = YamlConfiguration.loadConfiguration(versionFile);