配置mongo java driver显示操作日志

转自:https://github.com/ewcmsfree/ewcms/wiki/Help-mongo-logging

在使用hiberate实现数据层时,总会打开hibernate.show_sql=true选项,显示hibernate生成的SQL语句。他们可以通过生成的SQL语句了解ORM使用和运行,并可以依据SQL语句优化程序。同理我们也希望在mongo java driver中看见生成操作数据库语句日志。

直接使用mongo driver

在mongo driver加载之前设置如下系统属性:

// Enable MongoDB logging in general
System.setProperty("DEBUG.MONGO", "true");

// Enable DB operation tracing
System.setProperty("DB.TRACE", "true");

使用spring

spring使用了依赖注入,mongo driver加载由spring完成,所以也使用注入方法设置系统属性,设置方法如下:

    
        
        
    
    
        
        
        
            
                  DEBUG.MONGO
                  true
            
        
    
    
        
        
        
            
                  DB.TRACE
                  true
            
        
    
    
        
    
    

日志效果

信息: localhost:27017
三月 30, 2012 3:31:46 下午 com.mongodb.DBApiLayer trace
信息: find: ewcms.system.indexes { "name" : "name" , "ns" : "ewcms.person" , "dropDups" : false , "sparse" : false , "unique" : false , "key" : { "name" : 1}}
三月 30, 2012 3:31:46 下午 com.mongodb.DBApiLayer trace
信息: save:  ewcms.system.indexes { "name" : "name" , "ns" : "ewcms.person" , "dropDups" : false , "sparse" : false , "unique" : false , "key" : { "name" : 1}}
三月 30, 2012 3:31:46 下午 com.mongodb.DBApiLayer trace
信息: find: ewcms.system.indexes { "name" : "cerId" , "ns" : "ewcms.certificate" , "dropDups" : false , "sparse" : false , "unique" : true , "key" : { "cerId" : 1}}
三月 30, 2012 3:31:46 下午 com.mongodb.DBApiLayer trace
信息: find: ewcms.system.namespaces { }
三月 30, 2012 3:31:46 下午 com.mongodb.DBApiLayer trace
信息: find: ewcms.certificate { "brithdate" : { "$gt" : { "$date" : "1976-12-22T16:00:00.000Z"} , "$lt" : { "$date" : "1976-12-24T16:00:00.000Z"}}}

你可能感兴趣的:(mongodb)