我正在运行命令行应用程序。我正在运行Lo4j2。一切正常,但我想沉默在加载Log4J之前似乎运行的Spring序言。让我明确一点,Log4J工作正常,但是一旦加载了应用程序上下文,Spring记录消息的序言就会到达。
即。我不想看到这个
Oct 24, 2015 9:07:29 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@42a48628: startup date [Sat Oct 24 09:07:29 BST 2015]; root of context hierarchy
Oct 24, 2015 9:07:29 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [springConfig.xml]
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
您必须具有以下依赖关系:*包括log4j-1.2-api *
compile group: 'org.apache.logging.log4j', name: 'log4j', version: log4j2_version
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: log4j2_version
compile group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: log4j2_version
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: log4j_slfj_binder_version
让log4j2.xml像这样配置。我用Log4j2测试了
<Configuration >
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern=">%d{dd MMM yyyy HH:mm:ss,SSS} [%-5p] %X{trxID} %.20X{userName}[%c{2}] %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.springframework.context.support" level="ERROR" additivity="false">
<AppenderRef ref="CONSOLE" level="ERROR"/>
</Logger>
<Logger name="org.springframework.beans.factory.xml" level="ERROR" additivity="false">
<AppenderRef ref="CONSOLE" level="ERROR"/>
</Logger>
<Root level="INFO" additivity="false">
<AppenderRef ref="CONSOLE"/>
</Root>
</Loggers>
</Configuration>
我的考试计划:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestLog {
String springConfig = "spring-config/insight-test-context.xml";
private static final Logger slf4jLogger = LoggerFactory.getLogger(TestLog.class);
private AbstractApplicationContext ctx;
public static void main(String[] args) {
new TestLog().doTest();
}
public void doTest() {
slf4jLogger.info("--------Staring TestLog---------------");
ctx = new ClassPathXmlApplicationContext(springConfig);
ctx.registerShutdownHook();
slf4jLogger.info("----------Completed TestLog------------");
}
}