鍍金池/ 問答/數(shù)據(jù)庫  網(wǎng)絡(luò)安全/ slf4j日志選擇策略

slf4j日志選擇策略

我在項目中配置了slf4j和morphia

  <dependency>
            <groupId>org.mongodb.morphia</groupId>
            <artifactId>morphia</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- slf4j依賴 -->
        <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-simple</artifactId>
                 <version>1.7.5</version>
             </dependency> 

日志配置如下

   private static Logger logger = LoggerFactory.getLogger(MongodbTest.class);
    /**
     * 列舉全部數(shù)據(jù)庫名
     */
    @Test
    public void testSlf4j(){
        logger.debug("lalalala");
        logger.warn("lalala");
        logger.info("lalala");
    }

下面是輸出信息

四月 23, 2018 3:59:18 下午 org.mongodb.morphia.logging.MorphiaLoggerFactory chooseLoggerFactory
信息: LoggerImplFactory set to org.mongodb.morphia.logging.jdk.JDKLoggerFactory
[main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [springconfig.xml]
[main] INFO org.springframework.context.support.GenericApplicationContext - Refreshing org.springframework.context.support.GenericApplicationContext@9597028: startup date [Mon Apr 23 15:59:19 CST 2018]; root of context hierarchy
[main] WARN shenzhen.MongodbTest - lalala
[main] INFO shenzhen.MongodbTest - lalala

為什么slf4j選擇morphia的日志而不是選擇slf4j的simple日志

回答
編輯回答
離觴

如果你想用slf4j的日志模塊,引入org.mongodb.morphia的時候,要排除掉其日志部分。
出現(xiàn)該現(xiàn)象的原因是,log找實現(xiàn)類的時候,先找到了mongodb的日志實現(xiàn)類并做了實例化。
maven配置引用排除:

<exclusions>
    <exclusion>
        <groupId> XXXXXX </groupId>
        <artifactId> XXXXXX </artifactId>
    </exclusion>
</exclusions>
2017年12月10日 23:05