mybatis怎么配置log4jlog4j2打印mybatis出sql语句

MyBatis的关于批量数据操作_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MyBatis的关于批量数据操作
上传于||文档简介
&&M​y​B​a​t​i​s​的​关​于​批​量​数​据​操​作
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
你可能喜欢Ibatis,Mybatis利用log4j将SQL语句打印在控制台 - 推酷
Ibatis,Mybatis利用log4j将SQL语句打印在控制台
在做一个项目Demo的时候,使用MyBatis+Spring,发现写好的SQL查询出来不对劲,但是也没报错,
所以想到用日志把SQL语句打出来.也参考了部分网友的代码,最后总结了一下,发现正常运行。
本人项目为Mybatis+SpringMVC,所有都已配置好,且正常运行。
此过程无需配置,直接在classPath目录创建log4j.properties,文件,并将下列代码粘贴进去即可,此代码部分参考网友。
### set log levels ###
log4j.rootLogger = debug , &stdout , &D , &E
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = &%d %p [%c] - %m%n
.ibatis=debug
.mon.jdbc.SimpleDataSource=debug
.mon.jdbc.ScriptRunner=debug
.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
需要有Log4j.jar包,如果没有可以在我的资源中下载.
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&MyBatis开发步骤_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
MyBatis开发步骤
上传于||文档简介
&&M&#8203;y&#8203;B&#8203;a&#8203;t&#8203;i&#8203;s&#8203;开&#8203;发&#8203;步&#8203;骤&#8203;,&#8203;还&#8203;有&#8203;l&#8203;o&#8203;g&#03;j&#8203;的&#8203;详&#8203;细&#8203;配&#8203;置&#8203;信&#8203;息
大小:5.25KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢出处:http://blog.csdn.net
引言: 在项目中使用了MyBatis,一个比较苦恼的问题是无法看到执行的SQL的具体情况,所以,就找到了Log4jdbc-log4j2。这个是一个基于jdbc层面的监听工具,可以监听对于数据库的主要操作,从而完美的查看到其中执行的操作。
1. Log4jdbc-log4j2版本选择
for JDBC 3 support in JDK 1.5
for JDBC 4 support in JDK 1.6
JDBC 4.1 support in JDK 1.7
如何引入到项目?
如果项目是基于Maven工具,则可以直接使用如下依赖,即可完美解决问题:
&dependency&
&groupId&org.bgee.log4jdbc-log4j2&/groupId&
&artifactId&log4jdbc-log4j2-jdbcXX&/artifactId&
&version&1.16&/version&
&/dependency&3.
依赖包的安装
如有使用log4j, 则需要log4j.-core.jar和log4j-api.jar
如使用slf4j,则需要
slf4j-api.jar
修改数据库连接中的jdbc.url和driver.Class
xxx.driverClass=&strong&net.sf.log4jdbc.sql.jdbcapi.DriverSpy&/strong&
------ 数据库驱动程序
............................
xxxx.jdbcUrl = &strong&jdbc:log4&/strong&\:oracle\:thin\:@192.168.1.20\:1521\:orcl
-------------- 数据库连接URL
说明:其中加粗的内容,表示其是被修改后的新内容。
原有的URL:
jdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabase
替换的URL:
jdbc:log4jdbc:derby://localhost:1527//db-derby-10.2.2.0-bin/databases/MyDatabase
配置好log4j和log4j.properties
新增log4jdbc.log4j2.properties
这里使用Slf4j API, 声明如下:
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
可用的Logger
description
jdbc.sqlonly
Logs only SQL. SQL executed within a prepared statement is automatically shown with it&s bind arguments replaced with the data bound at that position, for greatly increased readability.
jdbc.sqltiming
Logs the SQL, post-execution, including timing statistics on how long the SQL took to execute.
jdbc.audit
Logs ALL JDBC calls except for ResultSets. This is a very voluminous output, and is not normally needed unless tracking down a specific JDBC problem.
jdbc.resultset
Even more voluminous, because all calls to ResultSet objects are logged.
jdbc.resultsettable
Log the jdbc results as a table. Level debug will fill in unread values in the result set.
jdbc.connection
Logs connection open and close events as well as dumping all open connection numbers. This is very useful for hunting down connection leak problems.
这些都是需要配置到log4j.properties或者log4j.xml中去的。
示例如下:
! Log all JDBC calls except for ResultSet calls
log4j.logger.jdbc.audit=DEBUG,jdbc
log4j.additivity.jdbc.audit=false
! Log only JDBC calls to ResultSet objects
log4j.logger.jdbc.resultset=DEBUG,jdbc
log4j.additivity.jdbc.resultset=false
! Log only the SQL that is executed.
log4j.logger.jdbc.sqlonly=DEBUG,sql
log4j.additivity.jdbc.sqlonly=false
! Log timing information about the SQL that is executed.
log4j.logger.jdbc.sqltiming=DEBUG,sqltiming
log4j.additivity.jdbc.sqltiming=false
! Log connection open/close events and connection number dump
log4j.logger.jdbc.connection=FATAL,connection
log4j.additivity.jdbc.connection=false
! the appender used for the JDBC API layer call logging above, sql only
log4j.appender.sql=org.apache.log4j.FileAppender
log4j.appender.sql.File=./logs/sql.log
log4j.appender.sql.Append=false
log4j.appender.sql.layout=org.apache.log4j.PatternLayout
log4j.appender.sql.layout.ConversionPattern=-----& %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
! the appender used for the JDBC API layer call logging above, sql timing
log4j.appender.sqltiming=org.apache.log4j.FileAppender
log4j.appender.sqltiming.File=./logs/sqltiming.log
log4j.appender.sqltiming.Append=false
log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout
log4j.appender.sqltiming.layout.ConversionPattern=-----& %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n
! the appender used for the JDBC API layer call logging above
log4j.appender.jdbc=org.apache.log4j.FileAppender
log4j.appender.jdbc.File=./logs/jdbc.log
log4j.appender.jdbc.Append=false
log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
! the appender used for the JDBC Connection open and close events
log4j.appender.connection=org.apache.log4j.FileAppender
log4j.appender.connection.File=./logs/connection.log
log4j.appender.connection.Append=false
log4j.appender.connection.layout=org.apache.log4j.PatternLayout
log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
经过一番折腾之后呢,终于可以在系统看到数据库中各类的操作了,数据库的各种行为尽在眼底........
作者:blueheart20 发表于 14:45:27
阅读:55 评论:0
相关 [log4jdbc log4j2 监听] 推荐:
- JavaRanger - 专注JAVA高性能程序开发、JVM、Mysql优化、算法
一、log4jdbc介绍.
使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况. 本文使用logback方式实现,如果需要使用log4j的来实现,请参照博文:
/xdp-gacl/p/4081848.html.   平时开发使用的ibatis,mybatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如果想要拷贝sql至PLSQL Developer客户端直接执行,需要自己拼凑sql.
- CSDN博客推荐文章
在监听短信在这个功能中,通知观察者的工作已经有别人做好,我们只需要注册一个观察者即可. System.out.println( new Date(date)+& 您收到 & + address +&给你发的一封短信,短信内容为: \n& +body );. 最后千万别忘了在清单文件上加上所需要的相应权限.
- 博客园_Ruby's Louvre
Firefox、Chrome、IE9,IE10 均支持 oninput 事件,此外所有版本的 IE 均支持 onpropertychange 事件. oninput 事件在用户输入、退格(backspace)、删除(delete)、剪切(ctrl + x)、粘贴(ctrl + v)及鼠标剪切与粘贴时触发(在 IE9 中只在输入、粘贴、鼠标粘贴时触发).
- 企业架构 - ITeye博客
ACTIVITI 学习笔记 - 监听. 所有分发的事件都是org.activiti.engine.delegate.event.ActivitiEvent的子类. 监听器监听的流程引擎已经创建完毕,并准备好接受API调用. 监听器监听的流程引擎已经关闭,不再接受API调用. 创建了一个新实体,初始化也完成了.
- CSDN博客Web前端推荐文章
我们通常可以部署一些特殊的Servlet类来监听Web应用的上下文信息、Servlet会话信息,Servlet请求信息等. 通过这些监听,我们可以自动执行某些程序. 例如,我们可以把利用监听会话信息,来统计在线人数. 我们可以监听ServletContext,来初始化一些系统常量,初始化一些工厂等.
NCC Groupp的安全专家演示了如何将智能电视变成监听工具. 智能电视内置了扬声器和存储器,可以被恶意程序利用记录会话. 间谍程序可通过物理接触或恶意应用下载安装到电视机上. NCC Group是通过物理接触方式安装间谍软件,该公司的安全专家认为恶意应用可伪装成合法应用通过设备制造商的应用商店安装到电视机上,智能电视支持自动更新,因此恶意应用可释出恶意更新将合法应用变成间谍软件.
- CSDN博客推荐文章
(1) 监听BroadcastReceiver. (2)获取PowerManager事件. Intent.ACTION_SCREEN_ON : 屏幕点亮
Intent.ACTION_SCREEN_OFF :屏幕关闭
Intent.ACTION_USER_PRESENT: 用户解锁. 监听用户解锁需要在AndroidManifest中注册权限.
- 移动开发 - ITeye博客
思路主要是在onResume事件里处理按钮事件并进行判断. 如果使用了WebView则在onKey里处理返回按钮事件. 已有
0 人发表留言,猛击-&&
这里&&-参与讨论. —软件人才免语言低担保 赴美带薪读研.
- 知乎每日精选
手机监听的部分内容可以见我在 电影《窃听风云》中情报人员通过对方的手机(前提不拆下电池)进行监听是否真实. 不开启加密选项网络的GSM和CDMA手机可以轻易被监听,前者技术门槛更低. 由于手机发射功率远比基站小,因此靠被动式设备(即纯接收手机发射的无线电波)获取到的语音绝大多数为单向语音. 而双向语音的价值远远大于单向语音,因此找出手机位置,接近目标拿到双向语音,才是一个完整的监听过程.
- C++博客-牵着老婆满街逛
(1)实现 javax.servlet.ServletContextListener 接口的两个方法:contextInitialized()和contextDestroyed().
contextInitialized():当Servlet容器启动时会执行contextDestroyed():当Servlet容器停止时会执行.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。}

我要回帖

更多关于 log4j.xml配置mybatis 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信