Mybatis中的日志技术

当我们程序发生错误的时候,我们会在控制台看我们报的错误,但是我们不止想要知道我们的错误的信息,还想知道我们在程序运行过程中的其他信息,这就要使用我们的日志技术,在实际的开发中,日志是十分重要的,当项目越来越大的时候,有时候一个小的错误或者逻辑bug我们没有发现,导致了后面的开发出现问题,我们就需要查阅之前的日志进行分析,最终找到我们的问题所在。



日志

实用日志十分简单,只要导入一个拥有日志技术的jar包就可以了。

利用maven导入依赖:

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

 然后需要再写一个配置文件:名字固定:log4j.properties.放在resources下。

内容:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.com.yht.mapper.EmpMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

从上往下分析:

# Global logging configuration
log4j.rootLogger=ERROR, stdout

这是一个对全局的配置,可以替换的是第二行后面的是ERROR,这代表的是一个日志等级。

日志等级

六个普通日志等级:TRACE / DEBUG / INFO / WARNING / ERROR / FATAL

还有两个特殊等级 ALL、OFF,全部日志打开和关闭,这里不做讨论

TRACE
TRACE 在线调试。
该级别日志,默认情况下,既不打印到终端也不输出到文件。此时,对程序运行效率几乎不产生影响。 n

DEBUG
DEBUG 终端查看、在线调试。
该级别日志,默认情况下会打印到终端输出,但是不会归档到日志文件。因此,一般用于开发者在程序当前启动窗口上,查看日志流水信息。

INFO
INFO 报告程序进度和状态信息。
一般这种信息都是一过性的,不会大量反复输出。
例如:连接商用库成功后,可以打印一条连库成功的信息,便于跟踪程序进展信息。

WARNING
WARNING 警告信息
程序处理中遇到非法数据或者某种可能的错误。
该错误是一过性的、可恢复的,不会影响程序继续运行,程序仍处在正常状态。

ERROR
ERROR 状态错误
该错误发生后程序仍然可以运行,但是极有可能运行在某种非正常的状态下,导致无法完成全部既定的功能。

FATAL
FATAL 致命的错误
表明程序遇到了致命的错误,必须马上终止运行。


# MyBatis logging configuration...
log4j.logger.com.yht.mapper.EmpMapper=TRACE

这是自定义配置:

可以更改的是里面的   com.yht.mapper.EmpMapper   和后面的日志等级

前面的是Mapper.xml文件的全路径名。后面可以根据自己的需要进行定义。

# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
 

这里所代表的意思是在控制台进行输出,其他的可以不用动,如果想要打印到文件里可以再自行学习。


然后就配置完成了, 这时候去执行一下测试:

 

中间的DEBUG 和  TRACE以及后面所带的内容就是打印的日志。

对于分析执行的SQL语句的过程对我们有很大的帮助。


在以后还有可能会碰到这种配置方式:

         <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>   
        <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.25</version>
      <scope>test</scope>
    </dependency>

其中第一个是我们当前使用的log4j,中间的是一个日志的标准,因为log4j出来的比较早,当时并没有对统一的日记技术形成一个规范,后来随着技术越来越多,所以就推出了一个规范,中间的依赖就是这个规范,不是一个日志技术,但是因为log4j比较早,所以有些地方没有遵循这个统一的规范,所以就又推出了一个jar包,来连接log4j和这个规范,作为一个中间桥梁的技术来规整log4j。

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值