MyBatis第九章:项目案例——log4j在mybatis中的使用

该系列为imooc Java数据库开发与实战应用中MyBatis课程笔记,跟随课程加入自己见解,同时也为项目中碰到一些问题做了解答

本章节是使用log4j对mybatis执行过程中的信息进行跟踪

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站,可以免费下载到Log4j最新版本的软件包。

大神写的log4j总结笔记

一、在maven的pom.xml文件中添加log4j的配置

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

二、在项目resources文件中新增log4j配置文件

resources>new file>log4j.properties

log4j.rootLogger=DEBUG, A1
#记录的是DEBUG级别日志,增加了一个A1日志源

log4j.appender.A1=org.apache.log4j.ConsoleAppender
#A1日志源输出到控制台

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#使用固定的格式

log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
#表示格式的样式

添加完log4j的依赖及配置后,对于常规的mybatis跟踪已经可以使用了

三、使用log4j对mybatis常规跟踪

启动项目在这里插入图片描述
打开浏览器,可以看到项目正常启动了,这是我们查看idea控制台
在这里插入图片描述
可以看到控制台有sql select *from users日志输出
再点进详情页中查看
在这里插入图片描述
此时控制台显示
在这里插入图片描述
日志输出
select * from users where id =? (?代表占位符)
Parameters: 1(Integer) (参数为1,类型为integer)
Total: 1 (在执行过程中返回1条数据)

四、在常规项目中使用log4j

比如我们Servlet中使用log4j

  1. 首先在Servlet类中创建一个日志记录的实体类对象,以UsersFindByIdServlet为例
package com.damu.servlet;

import com.damu.dao.UsersDAO;
import com.damu.entity.Users;
import org.apache.log4j.Logger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/detail")
public class UsersFindByIdServlet extends HttpServlet {
   /*
   创建对应的日志记录对象
   通过不同的级别进行日志的记录,常用级别【DEBUG、WARN、INFO、LOG】
    */
    private Logger log=Logger.getLogger(UsersFindByIdServlet.class);


    private UsersDAO usersDAO=new UsersDAO();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id =req.getParameter("id");
        log.info("获取到查询参数id>"+id);
        Users user=usersDAO.findById(Integer.parseInt(id));
        log.info("查询完成,查询到的数据>"+user);
        req.setAttribute("user",user);
        req.getRequestDispatcher("detail.jsp").forward(req,resp);//请求转发至detail.jsp
    }
}

  1. 启动项目,再次观察控制台
    在这里插入图片描述
  2. log4j常用日志级别
    每个Logger都被了一个日志级别(log level),用来控制日志信息的输出。日志级别从高到低分为:
    A:off 最高等级,用于关闭所有日志记录。
    B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
    C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
    D:warm 表明会出现潜在的错误情形。
    E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
    F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
    G:all 最低等级,用于打开所有日志记录。

Log4j只建议使用4个级别,优先级从高到低分别是error,warn,info和debug。通过使用日志级别,可以控制应用程序中相应级别日志信息的输出。例如,如果使用b了info级别,则应用程序中所有低于info级别的日志信息(如debug)将不会被打印出来。

修改log4j的配置文件,把级别调整为info,再次启动项目
在这里插入图片描述
此时之前看到的DEBUG数据就不存在了
关于log4j在mybatis中的使用就简单说到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翘脚猴子耍把戏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值