Search in sources :

Example 16 with Level

use of org.apache.logging.log4j.Level in project herd by FINRAOS.

the class Log4j2LoggingHelper method executeWithoutLogging.

@Override
public void executeWithoutLogging(List<Class<?>> loggingClasses, Command command) throws Exception {
    // Get the logger context and it's associated configuration.
    LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false);
    Configuration configuration = loggerContext.getConfiguration();
    // Temporarily turn off logging.
    Map<LoggerConfig, Level> loggerToOriginalLevel = new HashMap<>();
    for (Class<?> loggingClass : loggingClasses) {
        LoggerConfig loggerConfig = loggingClass == null ? null : configuration.getLoggerConfig(loggingClass.getName());
        Level originalLevel = loggerConfig == null ? null : loggerConfig.getLevel();
        if (loggerConfig != null) {
            loggerConfig.setLevel(Level.OFF);
            loggerToOriginalLevel.put(loggerConfig, originalLevel);
        }
    }
    // This causes all Loggers to re-fetch information from their LoggerConfig.
    loggerContext.updateLoggers();
    try {
        // Execute the command.
        command.execute();
    } finally {
        for (Map.Entry<LoggerConfig, Level> entry : loggerToOriginalLevel.entrySet()) {
            LoggerConfig loggerConfig = entry.getKey();
            Level originalLevel = entry.getValue();
            // Turn the original logging back on.
            loggerConfig.setLevel(originalLevel);
        }
    }
}
Also used : Configuration(org.apache.logging.log4j.core.config.Configuration) HashMap(java.util.HashMap) Level(org.apache.logging.log4j.Level) LoggerContext(org.apache.logging.log4j.core.LoggerContext) HashMap(java.util.HashMap) Map(java.util.Map) LoggerConfig(org.apache.logging.log4j.core.config.LoggerConfig)

Example 17 with Level

use of org.apache.logging.log4j.Level in project tutorials by eugenp.

the class MyServiceTest method testCustomLevel.

@Test
public void testCustomLevel() {
    Level myLevel = Level.forName("NEW_LEVEL", 350);
    logger.log(myLevel, "Custom Level Message");
    logger.log(Level.getLevel("NEW_XML_LEVEL"), "Custom XML Level Message");
}
Also used : Level(org.apache.logging.log4j.Level) Test(org.junit.Test)

Example 18 with Level

use of org.apache.logging.log4j.Level in project spring-integration by spring-projects.

the class Log4j2LevelAdjuster method apply.

@Override
public Statement apply(final Statement base, final FrameworkMethod method, Object target) {
    return new Statement() {

        @Override
        public void evaluate() throws Throwable {
            LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
            Configuration config = ctx.getConfiguration();
            Map<Class<?>, Level> classLevels = new HashMap<>();
            for (Class<?> cls : Log4j2LevelAdjuster.this.classes) {
                String className = cls.getName();
                LoggerConfig loggerConfig = config.getLoggerConfig(className);
                LoggerConfig specificConfig = loggerConfig;
                if (!loggerConfig.getName().equals(className)) {
                    specificConfig = new LoggerConfig(className, Log4j2LevelAdjuster.this.level, true);
                    specificConfig.setParent(loggerConfig);
                    config.addLogger(className, specificConfig);
                }
                classLevels.put(cls, specificConfig.getLevel());
                specificConfig.setLevel(Log4j2LevelAdjuster.this.level);
            }
            Map<String, Level> categoryLevels = new HashMap<>();
            for (String category : Log4j2LevelAdjuster.this.categories) {
                LoggerConfig loggerConfig = config.getLoggerConfig(category);
                LoggerConfig specificConfig = loggerConfig;
                if (!loggerConfig.getName().equals(category)) {
                    specificConfig = new LoggerConfig(category, Log4j2LevelAdjuster.this.level, true);
                    specificConfig.setParent(loggerConfig);
                    config.addLogger(category, specificConfig);
                }
                categoryLevels.put(category, specificConfig.getLevel());
                specificConfig.setLevel(Log4j2LevelAdjuster.this.level);
            }
            ctx.updateLoggers();
            logger.debug("++++++++++++++++++++++++++++ " + "Overridden log level setting for: " + Arrays.toString(Log4j2LevelAdjuster.this.classes) + " and " + Arrays.toString(Log4j2LevelAdjuster.this.categories) + " for test " + method.getName());
            try {
                base.evaluate();
            } finally {
                logger.debug("++++++++++++++++++++++++++++ " + "Restoring log level setting for: " + Arrays.toString(Log4j2LevelAdjuster.this.classes) + " and " + Arrays.toString(Log4j2LevelAdjuster.this.categories) + " for test " + method.getName());
                for (Class<?> cls : Log4j2LevelAdjuster.this.classes) {
                    LoggerConfig loggerConfig = config.getLoggerConfig(cls.getName());
                    loggerConfig.setLevel(classLevels.get(cls));
                }
                for (String category : Log4j2LevelAdjuster.this.categories) {
                    LoggerConfig loggerConfig = config.getLoggerConfig(category);
                    loggerConfig.setLevel(categoryLevels.get(category));
                }
                ctx.updateLoggers();
            }
        }
    };
}
Also used : Configuration(org.apache.logging.log4j.core.config.Configuration) HashMap(java.util.HashMap) Statement(org.junit.runners.model.Statement) Level(org.apache.logging.log4j.Level) LoggerContext(org.apache.logging.log4j.core.LoggerContext) LoggerConfig(org.apache.logging.log4j.core.config.LoggerConfig)

Example 19 with Level

use of org.apache.logging.log4j.Level in project core by CubeEngine.

the class Log4jProxyTarget method setProxyLevel.

@Override
public void setProxyLevel(LogLevel level) {
    Level l4jLevel = levelMap.get(level);
    if (l4jLevel == null) {
        l4jLevel = Level.INFO;
    }
    this.handle.setLevel(l4jLevel);
}
Also used : Level(org.apache.logging.log4j.Level) LogLevel(org.cubeengine.logscribe.LogLevel)

Example 20 with Level

use of org.apache.logging.log4j.Level in project core by CubeEngine.

the class Log4jProxyTarget method publish.

@Override
protected void publish(LogEntry entry) {
    Level level = levelMap.get(entry.getLevel());
    if (level == null) {
        level = Level.INFO;
    }
    this.handle.log(level, MacroProcessor.processSimpleMacros(entry.getMessage(), entry.getArgs()), entry.getThrowable());
}
Also used : Level(org.apache.logging.log4j.Level) LogLevel(org.cubeengine.logscribe.LogLevel)

Aggregations

Level (org.apache.logging.log4j.Level)152 Test (org.junit.Test)31 LoggerContext (org.apache.logging.log4j.core.LoggerContext)27 LoggerConfig (org.apache.logging.log4j.core.config.LoggerConfig)27 Logger (org.apache.logging.log4j.Logger)25 SimpleMessage (org.apache.logging.log4j.message.SimpleMessage)25 Message (org.apache.logging.log4j.message.Message)23 Marker (org.apache.logging.log4j.Marker)21 Configuration (org.apache.logging.log4j.core.config.Configuration)21 Map (java.util.Map)16 HashMap (java.util.HashMap)14 LogEvent (org.apache.logging.log4j.core.LogEvent)13 Test (org.junit.jupiter.api.Test)12 ContextStack (org.apache.logging.log4j.ThreadContext.ContextStack)11 StringMap (org.apache.logging.log4j.util.StringMap)10 Appender (org.apache.logging.log4j.core.Appender)9 IOException (java.io.IOException)8 ArrayList (java.util.ArrayList)8 List (java.util.List)8 Log4jLogEvent (org.apache.logging.log4j.core.impl.Log4jLogEvent)8