log4j配置和mybatis sql打印

来源:互联网 发布:手机怎么退出淘宝账号 编辑:程序博客网 时间:2024/05/17 09:29

项目重构,搭个新框架,日志必不可少,之前一直都是别人配好自己用,这次自己配,费了不少时间,记录一下。

Log4j步骤:

  1. jar包
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>runtime</scope>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.10</version>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.10</version>
    <scope>runtime</scope>
    </dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.10</version>
    </dependency>

    其中slf4j 用来mybatis打印sql

  2. 配置xml或properties文件
    log4j有两种配置方式,它会自动默认先读取xml,如果没有,再读取properties,我用properties方式,文件位置放在resource下面(我用的maven),具体配置如下:

   ### set log levels ###log4j.rootLogger = debug,stdout,D,E### 输出到控制台 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.outlog4j.appender.stdout.Encoding=UTF-8log4j.appender.stdout.Threshold=infolog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 输出到日志文件 ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File =/logs/log.loglog4j.appender.D.Append=truelog4j.appender.D.Threshold=infolog4j.appender.D.Encoding=UTF-8log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n### 保存异常信息到单独文件 ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppender## 异常日志文件名log4j.appender.E.File = /logs/error.loglog4j.appender.E.Encoding=UTF-8log4j.appender.E.Append=truelog4j.appender.E.Threshold=ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %l:%c:%t:%r ] - [ %p ]  %m%n#mybatis SQl打印log4j.logger.org.mybatis=DEBUG  log4j.logger.java.sql.Connection=DEBUG  log4j.logger.java.sql.Statement=DEBUG  log4j.logger.java.sql.PreparedStatement=DEBUG  log4j.logger.java.sql.ResultSet=DEBUG   

其中rootLogger是全局配置,配了最低级别,局部配置里的属性 Threshold 可以把全局的覆盖掉。这样基本就配置好了,启动项目控制台就可以看到日志打印了。 但是要想打印mybatis中的sql信息,还有一个关键的配置,在mybatis-config.xml中加上一句话:
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>

这段话加在typeAliases的上面,大功告成,最后效果如下:

Creating a new SqlSessionSqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6965427e] was not registered for synchronization because synchronization is not activeJDBC Connection [jdbc:oracle:thin:@//localhost:1521/orcl, UserName=ZPF, Oracle JDBC driver] will not be managed by Spring==>  Preparing: SELECT RECORD_ID, NAME, MEMO, ENABLE, BEGIN_TIME, END_TIME, UPD_USER_ID,INS_DATE,COIN_END_TIME FROM TCC_ACTIVITY ==> Parameters: <==    Columns: RECORD_ID, NAME, MEMO, ENABLE, BEGIN_TIME, END_TIME, UPD_USER_ID, INS_DATE, COIN_END_TIME<==        Row: 1, 活动, 充值送红包, 1, 2015-06-19 00:00:00, 2015-07-23 00:00:00, fitw, 2015-06-19 14:08:48, 2015-07-20 00:00:00<==        Row: 2, 周年庆第三季, 周年庆, 1, 2015-06-23 00:00:00, 2015-07-30 00:00:00, wang, 2015-06-23 15:06:09, 2015-07-01 00:00:00<==        Row: 7, 投资破亿送币, 投资破亿送金币, 1, 2015-08-06 00:00:00, 2015-08-16 00:00:00, wanng, 2015-08-06 13:45:22, 2015-08-16 00:00:00<==        Row: 8, 投资破亿送VIP, 投资破亿送VIP, 1, 2015-08-06 00:00:00, 2015-08-16 00:00:00, waning, 2015-08-06 14:14:01, 2015-08-16 00:00:00<==        Row: 5, 注册送金币, 注册送金币, 1, 2015-07-24 00:00:00, 2015-08-24 00:00:00, waing, 2015-07-23 20:29:34, 2015-09-01 00:00:00<==        Row: 17, 2016跨年暖冬抽奖活动, 2016跨年暖冬抽奖活动, 1, 2015-12-22 00:00:00, 2016-01-15 00:00:00, wang, 2015-12-21 17:42:33, 2015-01-25 00:00:00<==        Row: 16, 签到活动, 签到活动, 1, 2015-07-24 00:00:00, 2017-08-17 00:00:00, waning, 2015-11-03 11:21:20, 2016-09-01 00:00:00<==        Row: 18, 金币转赠, 金币转赠, 1, 2015-07-24 00:00:00, 2017-12-01 00:00:00, null, 2015-12-09 15:40:50, 2017-12-01 00:00:00<==      Total: 8Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6965427e]
0 0
原创粉丝点击