zoukankan      html  css  js  c++  java
  • Mybatis在控制台打印不出SQL日志

    要是mybatis项目打印出日志,只需要在log4j的配置文件中加上下面一段即可

    1 log4j.logger.com.ibatis=debug
    2 log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
    3 log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
    4 log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
    5 log4j.logger.java.sql.Connection=debug
    6 log4j.logger.java.sql.Statement=debug
    7 log4j.logger.java.sql.PreparedStatement=debug
    8 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, 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。

  • 相关阅读:
    动态面板——axure线框图部件库介绍
    如何安装(装载)axure组件(部件)
    文本框、文本编辑框、按钮——axure线框图部件库介绍
    图片热区——axure线框图部件库介绍
    水平线、垂直线——axure线框图部件库介绍
    矩形、占位符组件——axure线框图部件库介绍
    文本面板——axure线框图部件库介绍
    windows server 2008 R2服务器安装IIS并添加网站
    使用SplitContainer来实现隐藏窗口的部分内容(转)
    C# VS2010结合SQL Server 2008数据库编程实现方法
  • 原文地址:https://www.cnblogs.com/guanghe/p/10438942.html
Copyright © 2011-2022 走看看