当前位置: 首页 > wzjs >正文

如何优化好一个网站网络销售推广是做什么的具体

如何优化好一个网站,网络销售推广是做什么的具体,网站网址怎么找,吉林 网站备案 照相MyBatis实战指南(八)MyBatis日志 前言一、为什么需要日志?二、日志框架怎么选?1. 手把手教你集成(以最常用的SLF4JLogback为例)步骤1:添加依赖(Maven项目)步骤2&#xff…

MyBatis实战指南(八)MyBatis日志

  • 前言
  • 一、为什么需要日志?
  • 二、日志框架怎么选?
    • 1. 手把手教你集成(以最常用的SLF4J+Logback为例)
    • 步骤1:添加依赖(Maven项目)
    • 步骤2:在MyBatis配置文件中开启日志
    • 步骤3:配置Logback日志文件
  • 三、配置方式详解
    • 1. MyBatis自身的日志配置
    • 2. 日志级别控制
    • 3. Spring Boot中怎么配?
  • 四、源码解析:搞懂MyBatis日志底层逻辑
    • 1. 日志接口 Log
    • 2. 日志工厂LogFactory
    • 3. 自动检测机制


前言

  • 在上一篇博客中,我们深入剖析了 MyBatis 的缓存机制原理与实战应用
  • 作为 MyBatis 框架中另一重要的基础设施,日志系统在项目开发、调试及运维阶段承担着关键作用 —— 它不仅能帮助开发者追踪 SQL 执行流程、定位异常问题,还能通过日志级别控制实现不同环境下的调试信息输出管理
  • 从本文开始,我们将围绕 MyBatis 日志模块展开系统讲解,涵盖 日志框架集成(Log4j/SLF4J 等)、配置方式、源码解析及性能优化 等核心内容,帮助读者全面掌握 MyBatis 日志体系的技术细节与最佳实践

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的MyBatis实战指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12969707.html?spm=1001.2014.3001.5482


一、为什么需要日志?

举个生活中的例子:你网购收到商品发现有问题,打电话给客服时,客服需要查看订单记录(日志)才能定位问题。MyBatis的日志也是一样的道理

  • 开发阶段:打印SQL语句和参数,帮你确认写的SQL是否正确(比如有没有拼错表名、where条件是否正确)
  • 调试阶段:记录异常信息(比如数据库连接失败、参数类型错误),快速定位报错位置
  • 生产阶段:通过控制日志级别,只记录重要信息(比如错误日志),避免无关信息干扰

最常用的场景:当你发现查询结果不对时,第一时间打开日志看看实际执行的SQL是什么,90%的问题都能通过对比SQL找到原因

二、日志框架怎么选?

MyBatis本身不自带日志实现,需要集成第三方日志框架

  • 常见的框架有这几种。
框架名称优点缺点适合场景
SLF4J统一日志接口,支持多种实现(如Logback)不能单独使用,必须搭配具体实现新项目首选,推荐搭配Logback
Log4j老牌框架,配置简单性能一般,新版本Log4j2已发布兼容旧项目
Log4j2性能更好,支持异步日志配置比Log4j复杂一点对性能要求高的项目
Java自带JUL无需额外依赖功能简单,配置不够灵活极简项目或临时调试

1. 手把手教你集成(以最常用的SLF4J+Logback为例)

步骤1:添加依赖(Maven项目)

<!-- SLF4J接口 -->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.7</version>
</dependency>
<!-- Logback实现 -->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.4.13</version>
</dependency>

步骤2:在MyBatis配置文件中开启日志

mybatis-config.xml中添加:

<settings><!-- 设置日志工厂为SLF4J --><setting name="logImpl" value="SLF4J"/>
</settings>

步骤3:配置Logback日志文件

src/main/resources目录下新建logback.xml,核心配置如下(重点看注释):

<configuration><!-- 定义日志输出格式 --><pattern name="simplePattern">%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${simplePattern}</pattern></encoder></appender><!-- 重点:配置MyBatis日志输出 --><logger name="org.apache.ibatis" level="DEBUG"/> <!-- 输出MyBatis自身日志 --><logger name="com.yourcompany.mapper" level="DEBUG"/> <!-- 输出你的Mapper接口日志 --><root level="INFO"> <!-- 全局日志级别,优先级低于上面的logger --><appender-ref ref="CONSOLE"/></root>
</configuration>

三、配置方式详解

1. MyBatis自身的日志配置

mybatis-config.xml中,通过<settings>标签配置:

  • logImpl:指定使用的日志框架(可选值:SLF4J、LOG4J、LOG4J2、JUL、STDOUT_LOGGING、NO_LOGGING)
    <!-- 示例:使用Log4j2 -->
    <setting name="logImpl" value="LOG4J2"/>
    
  • lazyLoadingEnabledaggressiveLazyLoading:这两个和延迟加载相关的日志,新手暂时不用管,保持默认即可。

2. 日志级别控制

日志级别从低到高依次是:DEBUG < INFO < WARN < ERROR,级别越高,输出的内容越少。

  • 开发阶段:建议设为DEBUG,能看到完整的SQL语句和参数(比如:==> Preparing: SELECT * FROM user WHERE id=?
  • 生产阶段:设为ERRORWARN,只记录错误和警告,避免日志文件过大

3. Spring Boot中怎么配?

如果你用Spring Boot,不需要单独写MyBatis配置文件,直接在application.properties中配置:

# 开启MyBatis日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl# 配置具体Mapper的日志级别(比如只打印UserMapper的DEBUG日志)
logging.level.com.yourcompany.mapper.UserMapper=DEBUG

四、源码解析:搞懂MyBatis日志底层逻辑

如果你对底层原理好奇,可以简单了解这几个核心类,不用记代码,知道它们的关系就行:

1. 日志接口 Log

MyBatis定义了一个统一的日志接口Log,所有日志框架都要实现这个接口。比如Slf4jImpl就是SLF4J的实现类,Log4jImpl是Log4j的实现类。

2. 日志工厂LogFactory

它就像一个"工厂",根据你配置的logImpl,生产对应的日志对象。比如你配置了SLF4J,它就会创建Slf4jImpl对象。

3. 自动检测机制

如果你的项目中同时存在多个日志框架(比如同时有Log4j和SLF4J),MyBatis会按以下顺序自动选择:

SLF4J → LOG4J2 → LOG4J → JUL → STDOUT(控制台输出)→ NO_LOGGING(无日志)

所以建议只保留一个日志框架,避免冲突。


以上就是这篇博客的全部内容,下一篇我们将继续探索MyBatis的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的MyBatis实战指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12969707.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


文章转载自:

http://4F32vkxa.gnchy.cn
http://vhoUJBWh.gnchy.cn
http://YSDO8kpu.gnchy.cn
http://LGTkAhs3.gnchy.cn
http://dvYlXWMK.gnchy.cn
http://9Hii5PR0.gnchy.cn
http://mENamnZz.gnchy.cn
http://BWhjgMqO.gnchy.cn
http://zIKPa3mW.gnchy.cn
http://jbklkfhZ.gnchy.cn
http://7BRMwUnI.gnchy.cn
http://CXoYAkHT.gnchy.cn
http://uVzf4T1P.gnchy.cn
http://RoCOgjTX.gnchy.cn
http://bVCMEMYs.gnchy.cn
http://2YJSeg9L.gnchy.cn
http://Qn7RrpYE.gnchy.cn
http://QtIED3t5.gnchy.cn
http://n9RFuYJN.gnchy.cn
http://xZq9rriX.gnchy.cn
http://UAe9dia1.gnchy.cn
http://p1zLuA95.gnchy.cn
http://lMzxXMyP.gnchy.cn
http://4ZKo6RET.gnchy.cn
http://O1XouTHc.gnchy.cn
http://X1yEIDRT.gnchy.cn
http://aHhuM2kl.gnchy.cn
http://PrLe3TJL.gnchy.cn
http://p4feqiof.gnchy.cn
http://z9j6EZYG.gnchy.cn
http://www.dtcms.com/wzjs/663097.html

相关文章:

  • 做玩网站怎么上传图片网站建设的安全应该注意什么
  • 网站后端怎么做好用的wordpress插件
  • 门户网站建设的平台如何搭建一个简单的网站
  • 黄冈智能网站建设平台手机下载视频网站模板下载失败
  • 水产养殖畜禽饲料类网站前端模板找电商平台帮我卖产品
  • 资源下载类网站源码wordpress电商建站
  • 自己的网站怎么创建在线美图
  • 建设营销型网站的原因临检中心网站建设
  • 做网批有专门的网站吗?自己做网站需要填税表吗
  • 彩票网站源码下载wordpress虎嗅
  • 网站seo月报郑州网站建设 seo
  • 石家庄市建设南大街小学网站怎样自创广告网站
  • 中国建设银行手机网站首页南京小程序开发费用
  • 网站模板双语广州市工程交易中心官网
  • 做课件最好的素材网站wordpress仿安卓主题
  • 全网营销推广网站建设电商网站开发哪家好
  • 网站建设的销售好做吗低价自适应网站建设
  • 减肥产品网站模板成都微信网站建设推
  • 免费网站建设咨询云南省建设厅网站二级建造师
  • 远大科技 网站建设诚信网站费用
  • 海外房产网站建设wordpress给会员发信
  • 网站建设投标方案网线制作实验心得体会
  • 如何利用站群做网站wordpress 自定义主页
  • 对于网站反爬虫如何做西安网站建设平台
  • 临沂网站制作公司网站前端开发培训资料
  • 网站开发 php 书籍 推荐如何把网站转换成wap站点
  • 设计专业所需网站如何做网站页面赚钱
  • 网站后台选择wordpress 代码编写
  • 做移动网站网站空间支持功能
  • 优购物官方网站下载wordpress百家主题