mybatis第二天 日志集成以及properties应用

本文介绍了如何在MyBatis项目中配置默认日志,包括使用STDOUT_LOGGING,以及逐步转向更流行且高效的SLF4J风格,重点讲解了如何使用logback进行配置,包括控制台输出、文件日志和滚动日志,同时提及了引入外部配置文件的实践方法。
摘要由CSDN通过智能技术生成

1: 开启mybatis默认的日志

    在核心配置文件中添加
    具体可以配置那些日志类型可以参考
    https://mybatis.net.cn/configuration.html#settings下的logImpl配置项的值
    mybatis 默认实现了STDOUT_LOGGING这个类型 
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

2:在日常开发中最常使用SLF4J风格的三种日志 SLF4J | LOG4J | LOG4J2

SLF4J  | LOG4J | LOG4J2 都是SLF4J 风格的日志 其中
LOG4J 由于漏洞问题已经不建议继续使用了
LOG4J2 和 实现了 SLF4J风格的LOGBACK 比较流行,而且日志生成速度是 LOG4J1.x
的几倍到几百倍,还实现了异步的日志处理方式

2.1: logback 配置案例

  在pom.xml 中添加
          <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.3.8</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.3.8</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>2.0.11</version>
        </dependency>
        
  修改核心配置文件中日志实现的的值为SLF4J <setting name="logImpl" value="SLF4J"/>      
  https://logback.qos.ch/manual/configuration.html  配置官方路径
  找到:Configuration with logback-test.xml or logback.xml
       Automatically configuring logback  参考其使用方式和配置
       在我们自己的类路径下添加 logback.xml
       在daoImpl 中添加  
       static final Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);
       logger.info("==========queryUserById begin=========");
  logback.xml的内容     
   <configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
切换   <root level="debug"> 的值 info debug 可以看到日志不同的效果
STDOUT : 输出到控制台 

 <pattern>%d{yyyy:MM:dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%kvp- %msg%n</pattern>  参数解释
 第一列日志时间以及各式 %d{yyyy:MM:dd HH:mm:ss.SSS}
 第二列线程名称 [%thread]
 第三列日志级别 %-5level  5表示5个字符宽度
 第四列  %logger{50}  表示该条日志所属类的全名  最大显示长度50
 第六列  %msg  也可以写作%m,表示这条日志的内容
 第七列  %n 换行
 
 将日志写入文件
 添加appender
   <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>myApp.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] -%kvp- %msg%n</pattern>
        </encoder>
    </appender>
    添加ref 
      <root level="debug">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>
    
  滚动日志
  <configuration>
    <!--
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>myApp.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] -%kvp- %msg%n</pattern>
        </encoder>
    </appender>
    -->

    <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--
            <fileNamePattern>${catalina.home:-.}/logs/mabatis01-%d{yyyy-MM-dd}.log</fileNamePattern>
            -->
            <!--时间滚动策略,每天生成一个.log文件-->
            <fileNamePattern>D:\logs\mabatis01-%d{yyyy-MM-dd}.log</fileNamePattern>
            <!--设置最大保存时间 10 天-->
            <maxHistory>10</maxHistory>
        </rollingPolicy>

    <encoder>
            <pattern>%date %level [%thread] %logger{10} [%file:%line] -%kvp- %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">

       <!-- <appender-ref ref="FILE" />  -->
        <appender-ref ref="RollingFile" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>  

在 daoImpl 中加入打印日志的逻辑验证日志
for (int i = 0; i < 100; i++) {
            logger.info("==========queryUserById begin=========");
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

3:引入外部配置文件

在核心配置文件中添加
    <!-- resource 表示读取类路径下的配置 -->
    <properties resource="config.properties"/>
    <!-- 不推荐使用下面url的方式 不灵活,不方便系统迁移或升级 用的是绝对路径-->
    <!-- <properties url="file:D:\myBatis01\src\main\resources\config.properties"/> -->
在类路径下添加 config.properties
driver=com.mysql.cj.jdbc.Driver    
修改核心配置文件的数据库配置的driver 项
 <property name="driver" value="${driver}"/>
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值