博客
关于我
MyBatis 日志
阅读量:703 次
发布时间:2019-03-21

本文共 2308 字,大约阅读时间需要 7 分钟。

MyBatis 日志工厂

日志的重要性

在编程过程中,数据库操作如果出现异常,我们需要及时排查问题。日志是排查问题的利器,但不再直接使用System.out.printlndebug工具,而是可以通过日志实现降级处理。

MyBatis 提供了 setting 标签下的 logImpl 属性,用于指定日志工厂。不同的日志工厂实现可以满足不同的日志需求。以下是常用的日志工厂实现及其特点:

常用日志工厂实现

1. SLF4J

SLF4J(Simple Logging Facade for Java)是一种面向现代表象层的日志框架,适合灵活的日志配置需求。这种日志工厂在 MyBatis 3 中依然有广泛的应用。

2. LOG4J

Log4j 是 Apache 开源项目,由Fearless Computing有限公司维护。Log4j 提供了高度可定制化的日志配置能力,支持多种日志目标(如控制台、文件、GUI等),并且可以根据需求设置日志级别。

3. LOG4J2

LOG4J2 是 Log4j 2.x 的全称,是对原有的 Log4j 进行了全面的改造,支持更复杂的日志配置需求,性能和稳定性也有显著提升。

4. JDK_LOGGING

JDK_LOGGING 是 MyBatis 默认的日志实现,基于 JDK 的 java.util.logging 包。

5. COMMONS_LOGGING

Commons Logging 是 Apache Commons 项目下的日志框架,适合需要通用日志处理的场景。

6. STDOUT_LOGGING

STDOUT_LOGGING 是一个简单的日志工厂实现,日志信息会被直接输出到标准输出中,不需要额外的依赖包。

7. NO_LOGGING

NO_LOGGING 表示完全不启用任何日志输出,这在某些性能敏感场景下可能有用处,但通常不推荐于开发和调试阶段。

如何配置日志工厂

在 MyBatis 的核心配置文件中添加 settings 标签,具体配置如下:

待完成项

1. 使用 LOG4J 导入依赖

在项目的 pom.xml 文件中添加 LOG4J 的依赖项:

log4j
log4j
1.2.17

2. 配置 Log4j 方面

在项目根目录下创建 log4j.properties 文件,设置日志文件路径、输出格式等:

#rootLogger 输出到控制台和文件log4j.rootLogger=DEBUG, console, file#控制台设置log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target:System.outlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.layout=org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=%c-%m%n#文件设置log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=./log/hj.loglog4j.appender.file.MaxFileSize=10mblog4j.appender.file.Threshold=DEBUGlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%p[%d{yy-MM-dd}][%c]%m%n#设置日志级别log4j.logger.org.mybatis=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

3. 在代码中使用日志

在需要使用日志的类中导入 LOG4J 的包,并初始化日志对象:

import org.apache.log4j.Logger;// 初始化日志对象public class UserMapperTest {    private static final Logger logger = Logger.getLogger(UserMapperTest.class);        // 测试 LOG4J 日志功能   @Test    public void testLog4j() {        logger.info("信息级别:进入了 testLog4j");        logger.debug("调试级别:进入了 testLog4j调试");        logger.error("错误级别:进入了 testLog4j");    }}

项目代码

点击查看完整代码

总结

通过以上方法,我们可以在 MyBatis 中灵活配置不同的日志工厂,根据具体需求选择合适的日志实现工具。

转载地址:http://ycxez.baihongyu.com/

你可能感兴趣的文章
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>
Multisim中555定时器使用技巧
查看>>
MySQL CRUD 数据表基础操作实战
查看>>
multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
查看>>
mysql csv import meets charset
查看>>
multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
查看>>
MySQL DBA 数据库优化策略
查看>>
multi_index_container
查看>>
MySQL DBA 进阶知识详解
查看>>
Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
查看>>