ログレベルはINFOに設定されていますが、SLF4Jはまだその式を評価しているようです。SLF4J-Log4Jはロギングを無効にしていないようです
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 :(
EDITは:見られるように、走行出力を改正、式が評価され、しかし、ログメッセージではありません。式は次のように評価されるべきではありませんSLF4J's "Performance Logging"
私はslf4j-log4j12-1.6.4.jar、slf4j-api-1.6.4.jarおよびlog4j-1.2.16.jar –
を持っています。私は出力を修正しました。 –