Search in sources :

Example 1 with LevelMatchFilter

use of org.apache.log4j.varia.LevelMatchFilter in project knime-core by knime.

the class NodeLogger method updateLog4JKNIMELoggerLevel.

/**
 * Adjusts log level of 'knime' loggers so that it matches the minimum level of all registered appenders.
 * Called after initialization and after the log level is changed for individual appenders.
 */
private static void updateLog4JKNIMELoggerLevel() {
    final Logger rootLogger = LogManager.getRootLogger();
    // by default this is 'ERROR' but may be changed in log4j.xml
    Level minimumLevel = rootLogger.getLevel();
    for (@SuppressWarnings("unchecked") Enumeration<Appender> appenderEnum = rootLogger.getAllAppenders(); appenderEnum.hasMoreElements(); ) {
        Appender next = appenderEnum.nextElement();
        for (Filter filter = next.getFilter(); filter != null; filter = filter.getNext()) {
            Level l = null;
            if (filter instanceof LevelMatchFilter) {
                l = OptionConverter.toLevel(((LevelMatchFilter) filter).getLevelToMatch(), Level.FATAL);
            } else if (filter instanceof LevelRangeFilter) {
                l = ((LevelRangeFilter) filter).getLevelMin();
            }
            if (l != null && minimumLevel.isGreaterOrEqual(l)) {
                minimumLevel = l;
            }
        }
    }
    final Level minimumLevelFinal = minimumLevel;
    synchronized (LOGGERS) {
        knownLoggerPrefixes.stream().map(LogManager::getLogger).forEach(l -> l.setLevel(minimumLevelFinal));
    }
}
Also used : WriterAppender(org.apache.log4j.WriterAppender) LogfileAppender(org.knime.core.util.LogfileAppender) NullAppender(org.apache.log4j.varia.NullAppender) Appender(org.apache.log4j.Appender) FileAppender(org.apache.log4j.FileAppender) LevelRangeFilter(org.apache.log4j.varia.LevelRangeFilter) Filter(org.apache.log4j.spi.Filter) LevelMatchFilter(org.apache.log4j.varia.LevelMatchFilter) LevelRangeFilter(org.apache.log4j.varia.LevelRangeFilter) Level(org.apache.log4j.Level) Logger(org.apache.log4j.Logger) LevelMatchFilter(org.apache.log4j.varia.LevelMatchFilter)

Aggregations

Appender (org.apache.log4j.Appender)1 FileAppender (org.apache.log4j.FileAppender)1 Level (org.apache.log4j.Level)1 Logger (org.apache.log4j.Logger)1 WriterAppender (org.apache.log4j.WriterAppender)1 Filter (org.apache.log4j.spi.Filter)1 LevelMatchFilter (org.apache.log4j.varia.LevelMatchFilter)1 LevelRangeFilter (org.apache.log4j.varia.LevelRangeFilter)1 NullAppender (org.apache.log4j.varia.NullAppender)1 LogfileAppender (org.knime.core.util.LogfileAppender)1