配置mongo java driver显示操作日志

配置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完成,所以也使用注入方法设置系统属性,设置方法如下:

    <bean id="sysProps"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetClass" value="java.lang.System" />
        <property name="targetMethod" value="getProperties" />
    </bean>
    <bean id="sysMongo"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="sysProps"/>
        <property name="targetMethod" value="setProperty"/>
        <property name="arguments">
            <list>
                  <value>DEBUG.MONGO</value>
                  <value>true</value>
            </list>
        </property>
    </bean>
    <bean id="sysDbTrace"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="targetObject" ref="sysProps"/>
        <property name="targetMethod" value="setProperty"/>
        <property name="arguments">
            <list>
                  <value>DB.TRACE</value>
                  <value>true</value>
            </list>
        </property>
    </bean>
    <mongo:mongo host="localhost" port="27017">
        <mongo:options connections-per-host="8"
            threads-allowed-to-block-for-connection-multiplier="4"
            connect-timeout="1000" max-wait-time="1500" auto-connect-retry="true"
            socket-keep-alive="true" socket-timeout="1500" slave-ok="true"
            write-number="1" write-timeout="0" write-fsync="false" />
    </mongo:mongo>
    <mongo:db-factory dbname="ewcms" mongo-ref="mongo" />

日志效果
信息: 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"}}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值