diff --git a/pom.xml b/pom.xml index 649d99b..b563b3c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.acrobot.chestshop chestshop - 3.7.10-DEV + 3.7.11-DEV Chest-and-sign shop plugin for Bukkit @@ -51,6 +51,11 @@ ormlite-jdbc 4.48 + + org.apache.logging.log4j + log4j-core + 2.0-beta9 + org.bukkit diff --git a/src/main/java/com/Acrobot/ChestShop/ChestShop.java b/src/main/java/com/Acrobot/ChestShop/ChestShop.java index 7aac352..5e8dfb3 100644 --- a/src/main/java/com/Acrobot/ChestShop/ChestShop.java +++ b/src/main/java/com/Acrobot/ChestShop/ChestShop.java @@ -42,6 +42,14 @@ import com.Acrobot.ChestShop.Updater.Updater; import com.avaje.ebean.EbeanServer; import com.lennardf1989.bukkitex.Database; import com.nijikokun.register.payment.forChestShop.Methods; +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.FileConfiguration; @@ -86,6 +94,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(); @@ -129,6 +138,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 final int CURRENT_DATABASE_VERSION = 1; private void handleMigrations() { @@ -140,7 +189,7 @@ public class ChestShop extends JavaPlugin { int lastVersion = previousVersion.getInt("version"); - switch(lastVersion){ + switch (lastVersion) { case CURRENT_DATABASE_VERSION: default: //do nothing