Spring Context启动,沉默前言

时间:2015-10-24 08:11:22

标签: spring log4

我正在运行命令行应用程序。我正在运行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]

非常感谢任何帮助,谢谢!

1 个答案:

答案 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------------");
    }

}