美文网首页Springboot
Springboot[日志篇]--集成log4j2输出到mong

Springboot[日志篇]--集成log4j2输出到mong

作者: 未知角色 | 来源:发表于2019-08-07 16:03 被阅读0次

      开启本节之前,有个假设条件,你已经在你的Springboot项目中完成对log4j2的集成。如果还没有,请先阅读另外一篇文章:
      Springboot实践--集成log4j2
      英文阅读无障碍的童鞋,可以到官方查看文档,有全面介绍,传送门【官方文档

    1. 增加依赖

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-mongodb3</artifactId>
    </dependency>
    

    2. 修改log4j2配置文件

    <appenders>
    <!--输出到mongoDB,缓存10M,根据自定义KEY做过滤-->
            <NoSql name="mongoDB" bufferSize="10">
                <Filters>
                    <ContextMapFilter onMatch="ACCEPT" onMismatch="DENY" operator="or">
                        <KeyValuePair key="idNo" value="00"/>
                    </ContextMapFilter>
                </Filters>
                <MongoDb3 databaseName="testDB"
                          collectionName="test_log"
                          server="localhost"
                          port="27017"
                          username="test"
                          password="test2019">
                </MongoDb3>
            </NoSql>
    </appenders>
    <loggers>
            <logger name="org.springframework" level="error"/>
            <root level="INFO">
                <appender-ref ref="mongoDB"/>
            </root>
    </loggers>
    

    3.启动类修改

      完成以上配置后,日志已经可以正确存入数据库,但是在项目中往往会出现异常抛出

    com.mongodb.MongoSocketOpenException: Exception opening socket
    

    原因是springboot中MongoAutoConfiguration.class对mongodb自动配置,我们在配置中未对数据源进行配置,系统会自动连接localhost:27017,显然无法成功。处理方式两种:
    方法一:修改启动类(建议)

    @SpringBootApplication(exclude = {MongoAutoConfiguration.class})
    

    方法二:application.yml中增加数据源配置

    spring:
      data:
        mongodb:
          host: 192.168.1.100
          port: 27017
          database: test
          username: test
          password: test2019
    

    \color{red}{end}

    相关文章

      网友评论

        本文标题:Springboot[日志篇]--集成log4j2输出到mong

        本文链接:https://www.haomeiwen.com/subject/kniodctx.html