首页 > 其他分享 >SSM框架-MyBatis学习日记4

SSM框架-MyBatis学习日记4

时间:2023-02-28 10:57:14浏览次数:37  
标签:logger 日记 SSM DEBUG file MyBatis log4j 日志 appender

日志工厂

如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题。

对于以往的开发过程,我们会经常使用到debug模式来调节,跟踪我们的代码执行过程。但是现在使用Mybatis是基于接口,配置文件的源代码执行过程。因此,我们必须选择日志工具来作为我们开发,调节程序的工具。

Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:

  • SLF4J

  • Apache Commons Logging

  • Log4j 2

  • Log4j

  • JDK logging

具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。如果一个都未找到,日志功能就会被禁用。

标准日志实现(STDOUT_LOGGING)

指定 MyBatis 应该使用哪个日志记录实现。如果此设置不存在,则会自动发现日志记录实现。

<settings>
       <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

测试,可以看到控制台有大量的输出!我们可以通过这些输出来判断程序到底哪里出了Bug。

Logo4j

Log4j是Apache的一个开源项目

通过使用Log4j,我们可以控制日志信息输送的目的地:控制台,文本,GUI组件....

我们也可以控制每一条日志的输出格式;

通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

1.导入log4j的包

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
</dependency>2、配置文件编写

2、配置文件编写

#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file

#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n

#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/kuang.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n

#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

3、setting设置日志实现

<settings>
   <setting name="logImpl" value="LOG4J"/>
</settings>

4、在程序中使用Log4j进行输出!

需要导入正确的包:

import org.apache.log4j.Logger;

在类中需要先定义静态常量logger:

static Logger logger = Logger.getLogger(UserMapperTest.class);

@Test
public void selectUser() {
   logger.info("info:进入selectUser方法");
   logger.debug("debug:进入selectUser方法");
   logger.error("error: 进入selectUser方法");
   SqlSession session = MybatisUtils.getSession();
   UserMapper mapper = session.getMapper(UserMapper.class);
   List<User> users = mapper.selectUser();
   for (User user: users){
       System.out.println(user);
  }
   session.close();
}

5、测试,看控制台输出!

如下图所示:

标签:logger,日记,SSM,DEBUG,file,MyBatis,log4j,日志,appender
From: https://www.cnblogs.com/lhzycs/p/17163117.html

相关文章

  • Mybatis缓存机制
    1、什么是缓存(Cache)?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,......
  • springboot+mybatis-plus数据库mysql+sybase遇到的一些问题
    我们服务启动时,sybase数据库连接直接创建10个连接。(为什么启动时会创建这么多连接?)有时候可以写入sybase库,大部分写入失败查询sybase库数据可以查出来,没问题尝试的方......
  • SSM框架-MyBatis学习日记3
    配置解析mybatis-config.xml系统核心配置文件MyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。能配置的内容如下:configuration(配置)properties(属性......
  • mybatis模糊查询
    publicUserqueryUserByLike(@Param("arg")Stringarg);方式一:<selectid="queryUserByLike"resultType="org.example.entity.User">select*fromt_use......
  • mybatis查询返回多条数据
    返回User类型的list<selectid="queryAllUser"resultType="org.example.entity.User">select*fromt_user</select>publicinterfaceUserMapper{......
  • SSM框架-MyBatis学习日记2
    在上一篇的日记中,我成功搭建了MyBatis的工作环境,至此只需要通过配置UserMapper和UserMapper.xml即可完成对数据库的增删查改工作。以下是UserMapper.xml中配置的部分:<?xm......
  • SSM jsp人力资源管理系统
    SSMjsp人力资源管理系统登录系统管理部门管理员工管理薪资管理招聘管理培训管理分页列表展示搜索新增编辑删除系统介绍:权限分为管理员和普通员工普通员工仅......
  • 微服务项目集成Mybatis及MybatisP的相关要求
    1、在pom.xml中导入mybatis及mybatis-plus的相关依赖<!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId>......
  • mybatisPlus驼峰命名映射
    踩坑记录项目使用mybatisPlus,在查询时候,数据库明明有值,且可返回,但是到了list里部分值就是null。最后发现是封装的实体中的字段与数据库写的一样,如数据库是user_name,实体......
  • mybatis-关联查询3-自关联查询
      一对多的方式处理查询指定栏目的所有子孙栏目    查询指定栏目及其所有子孙栏目 多对 一的方式处理   ......