SLF4J-Log4J, похоже, не отключил ведение журнала.

Похоже, что хотя уровень журнала был установлен на INFO, SLF4J все еще оценивает выражение.

package com.ab.test.slf4j;

import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SimpleTest {
    static final Logger logger = LoggerFactory.getLogger(SimpleTest.class);

    public static void main(String[] args) {
        PropertyConfigurator.configure("log4j.properties");

        logger.debug("Test " + testEnter());

        logger.debug("Test {}", testEnter());
    }

    public static String testEnter() {
        System.out
                .println("If you see this it means your expression is evaluated :(");

        return "test";
    }
}

Файл свойств Log4J:

log4j.rootLogger=INFO, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Вывод выполнения:

If you see this it means your expression is evaluated :(
If you see this it means your expression is evaluated :(

РЕДАКТИРОВАНИЕ: исправлен вывод выполнения, как видно, выражение оценивается, а сообщение журнала - нет. Выражение не должно оцениваться в соответствии с SLF4J's «Журнал производительности»

5
задан Oh Chin Boon 27 December 2011 в 10:54
поделиться