package org.toop; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.toop.eventbus.EventRegistry; /** * Options for logging. */ public final class Logging { public static void disableAllLogs() { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig rootLoggerConfig = config.getRootLogger(); rootLoggerConfig.setLevel(Level.OFF); ctx.updateLoggers(); } public static void enableAllLogs(Level level) { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig rootLoggerConfig = config.getRootLogger(); rootLoggerConfig.setLevel(level); ctx.updateLoggers(); } public static void disableLogsForClass(Class class_) { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig specificConfig = new LoggerConfig(class_.getName(), Level.OFF, true); config.addLogger(class_.getName(), specificConfig); ctx.updateLoggers(); } public static void enableLogsForClass(Class class_, Level levelToLog) { LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggers().get(class_.getName()); if (loggerConfig == null) { loggerConfig = new LoggerConfig(class_.getName(), levelToLog, true); config.addLogger(class_.getName(), loggerConfig); } else { loggerConfig.setLevel(levelToLog); } ctx.updateLoggers(); } public static void enableAllLogsForClass(Class class_) { enableLogsForClass(class_, Level.ALL); } public static void enableDebugLogsForClass(Class class_) { enableLogsForClass(class_, Level.DEBUG); } public static void enableErrorLogsForClass(Class class_) { enableLogsForClass(class_, Level.ERROR); } public static void enableFatalLogsForClass(Class class_) { enableLogsForClass(class_, Level.FATAL); } public static void enableInfoLogsForClass(Class class_) { enableLogsForClass(class_, Level.INFO); } public static void enableTraceLogsForClass(Class class_) { enableLogsForClass(class_, Level.TRACE); } }