Slf4j + Log4j2 + Mongodb 日志收集

slf4j + Log4j2 + mongodb springboot 日志收集

添加项目依赖

项目是基于 springboot 2.0+进行的, 在低版本没有测试过

pom.xml

slf4j log4j依赖添加


        
            org.slf4j
            slf4j-api
            1.7.25
        
        
            org.slf4j
            jcl-over-slf4j
            1.7.25
        
        
            org.apache.logging.log4j
            log4j-slf4j-impl
            2.9.1
        
        
            org.apache.logging.log4j
            log4j-core
            2.9.1
        
        
            org.apache.logging.log4j
            log4j-api
            2.9.1
        
        
            org.apache.logging.log4j
            log4j-nosql
            2.9.1
        
        

Mongodb 依赖添加

		
            org.mongodb
            mongo-java-driver
            3.2.2
        

项目中Log4j-api, log4j-core,log4j-nosql需要保持一致, 不然会导致在写日志时,导致找不到配置器

日志输出配置

log4j2 使用的默认配置文件class目录下的 log4j2.xml





    

    
    
        
        
        
        
        
        
        
    

    
    

        
            
            
            
            
        

        
        
            
        

        
        
            
            
            
            
                
                
                
            
            
            
        

        
        
            
            
            
            
                
                
                
            
            
            
        

        
        
            
            
            
            
                
                
                
            
            
            
        

        
            
        


    

    
    
    

        
        
            
        
        
        
        
            
        
		
		
        
            
        

        
            
            
            
            
            
			
             
        
    


使用日志

使用slf4j接口获取日志文件, 并正常输出日志即可

Logger logger = LoggerFactory.getLogger(clazz);
logger.info("info");
logger.warn("warn");
logger.error("error");

添加自定义属性

为contextMap中添加属性[a1]

Map map = new HashMap<>();
map.put("a1","a1Vallue");
ThreadContext.putAll(map);
logger.info("a1 info");
ThreadContext.removeAll(map);

后话

日志在生产环境中是以模块方式进行加载的, Springboot项目中 有些地方会引用了log4j包, 导致实际项目中的log4j包版本不一致, 可在主项目POM文件中添加以下配置,使之统一版本


		
			
				org.apache.logging.log4j
				log4j-api
				2.9.1
			
			
				org.apache.logging.log4j
				log4j-core
				2.9.1
			
		
	

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