Mybatis打印不出SQL日志
要是mybatis项目打印出日志,只需要在log4j的配置文件中加上下面一段即可
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.com.founder.centerbusiness=debug
注意,这段配置生效的前提是你配置了根记录器
log4j.rootLogger=info,stdout
我就是弄了好半天都没有输出,原因是项目中只使用了一个
log4j.logger.business=debug,A,stdout
的日志记录器,其他的日志由于没有根记录器,根部无法输出来,切记。
log4j扩展知识:
1,rootLogger
总是存在一个rootLogger,即使没有显示配置也是存在的,并且默认输出级别为DEBUG,所有其他的Logger都默认继承自rootLogger。
2 自定义的Logger(子Loggger)继承自rootLogger
格式如下:
log4j.logger.A.B.C
这样定义后其实建立了3个logger实例,它们分别是"A"、"A.B"、"A.B.C"。每次我们在系统中取得logger时,并不是新建实例,这些实例是系统启动的时候就按照配置文件初始化好的(也可能时第一次引用的时候建立的,然后缓存其实例供以后使用,这部分还没有时间研究)。
调用:
Logger logger = Logger.getLogger("A.B")
3 限制appender叠加性
例1:
log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console
对于logger A.B输出的任何日志会往控制台输出三次,原因是A.B继承A的以及A的父logger的所有appender,这种继承关系仅仅是把父logger的appender添加到自己的appender列表中,父logger的输出level不会影响子logger的输出。
例2:限制appender叠加
log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console
log4j.additivity.A.B=false
logger A.B的日志仅会输出到自己Console中,不会继承任何父logger的appender。
最新文章
- Python之路,day6-Python基础
- 作业二:Github注册账户过程
- 关于高负载服务器Kernel的TCP参数优化
- Excel文件导入SQL Server数据库表
- spark基础练习(未完)
- 常见hash算法的原理
- bzoj2326: [HNOI2011]数学作业
- NodeJS+ExpressJS+SocketIO+MongoDB应用模板
- A transition animation compatible Library.
- 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
- 基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作
- 试着讲清楚:js代码运行机制
- ●线段树的三个题(poj 3225,hdu 1542,hdu 1828)
- 小程序云开发--云函数上传文件或图片 base64
- TreeMap/LinkedHashMap/HashMap按键排序和按值排序
- Get The Treasury HDU - 3642(体积扫描线)
- GO语言之urfave/cli命令行解析
- python之SQLAlchemy组件
- vue 路由meta作用及在路由中添加props作用
- JDK1.8源码分析之HashMap