springboot log4j2写入nosql mongodb中,详解log4j2配置nosql mongodb,附源码

通过log4j2 mongo可以实现分布式系统的日志统一管理
下面开始介绍springboot如何快速集成log4j2输出到mongodb

我的springboot版本是2.0.4.RELEASE

log4j2 mongodb依赖

        
            org.mongodb
            mongo-java-driver
            3.10.2
        
        
            org.apache.logging.log4j
            log4j-api
            2.7
        
        
            org.apache.logging.log4j
            log4j-core
            2.7
        
        
            org.apache.logging.log4j
            log4j-nosql
            2.9.1
        
        
        
            com.lmax
            disruptor
            3.4.2
        

注意,还需要将spring-boot-starter中自带的logging去掉

        
        
            org.springframework.boot
            spring-boot-starter
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        

log4j2 mongodb 配置文件

log4j2.xml
需要注意 Logger 的 additivity属性
下面注释部分来自网络文章摘取,部分是我自己总结,经过验证的,这里我就不贴出验证过程了,有兴趣自己验证下吧,如果我的描述哪里有问题,希望能指出来,大家共同进步!






    
    
    
        
        
            
            
            

            



        

        
            
            
            
            
            
        
    
    
        
        
        
        
        
        
        
            
            
            
        

        
        
        
        
        
            
        
    

系统配置文件

application.properties

server.port=8097

##设置log4j2加载的配置文件,如果没有设置的话,默认找classpath:log4j2.xml
#logging.config=classpath:log4j2.xml

测试web类

TestController

package com.example.log4j2_mongodb_demo.controller;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author:
 * @create: 2019-09-19 21:56
 **/
@RestController
public class TestController {
    public final static Logger logger = LogManager.getLogger("mongologger");

    @RequestMapping("/test")
    public String test(){
        logger.info("123");
//        logger.error("456");
        return "";
    }
}

windows本地安装mongodb以及mongodb的图形客户端navicat

如果没有可以连接的本地或远程mongondb,先安装个mongodb

我的本地系统是windows7 64位
win7 64位 mongodb安装 点这里
win7 64位 mongodb图形客户端安装 点这里 ,当然不安装mongodb图形客户端也行,可以用命令行去查询,我这里介绍的是用图形客户端看效果

注意:
安装了mongondb 后 记得新建一个数据库 log
上面配置log4j2写入的mongodb连接的是127.0.0.1 ,如果要连远程的mongdb 记得将这个配置改下

测试

启动springboot程序后,打开浏览器输入
http://127.0.0.1:8097/test
在mongodb图形客户端刷新下log数据库的集合,会发现有个log4j2集合,如下图
在这里插入图片描述

成功将log4j2 日志写入到了mongodb

源码

链接:https://pan.baidu.com/s/1fi9ak4ZaTKXOBZ7u8uXPBQ
提取码:vsa0

你可能感兴趣的:(springboot,mongodb,log4j2)