要是mybatis项⽬打印出⽇志,只需要在log4j的配置⽂件中加上下⾯⼀段即可1 log4j.logger.com.ibatis=debug
2 log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug3 log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
4 log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug5 log4j.logger.java.sql.Connection=debug6 log4j.logger.java.sql.Statement=debug
7 log4j.logger.java.sql.PreparedStatement=debug8 log4j.logger.com.founder.centerbusiness=debug注意,这段配置⽣效的前提是你配置了根记录器1 log4j.rootLogger=info,stdout
我就是弄了好半天都没有输出,原因是项⽬中只使⽤了⼀个1 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, Consolelog4j.logger.A=DEBUG, Consolelog4j.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, Consolelog4j.logger.A=DEBUG, Consolelog4j.logger.A.B=INFO, Consolelog4j.additivity.A.B=false
logger A.B的⽇志仅会输出到⾃⼰Console中,不会继承任何⽗logger的appender。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务