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

网站服务器崩溃怎么办广州白云发布最新通告

网站服务器崩溃怎么办,广州白云发布最新通告,网址大全域名解析,德州网站推广1、官方文档 使用配置 | MyBatis-Plus 2、日志实现 MyBatis-Plus 提供了多种日志实现(log-impl),用于记录 SQL 语句和相关操作,帮助开发者进行调试和监控数据库操作。以下是一些可用的日志实现及其说明: StdOutImpl…

1、官方文档

使用配置 | MyBatis-Plus

2、日志实现

MyBatis-Plus 提供了多种日志实现(log-impl),用于记录 SQL 语句和相关操作,帮助开发者进行调试和监控数据库操作。以下是一些可用的日志实现及其说明:

  1. StdOutImpl:将日志信息输出到控制台,适用于开发和测试环境。在配置文件中设置 log-implorg.apache.ibatis.logging.stdout.StdOutImpl 可以开启控制台 SQL 日志打印 。

  2. NoLoggingImpl:不记录任何日志信息,适用于生产环境,以避免日志泄露可能的敏感信息。配置方式为设置 log-implorg.apache.ibatis.logging.nologging.NoLoggingImpl 来关闭 SQL 日志打印 。

  3. Slf4jImpl:使用 SLF4J 作为日志框架,可以与 Logback、Log4j2 等日志实现配合使用。配置方式为设置 log-implorg.apache.ibatis.logging.slf4j.Slf4jImpl

  4. JakartaCommonsLoggingImplJdk14LoggingImplLog4jImpl 等:这些是 MyBatis-Plus 支持的其他日志实现,可以根据项目中使用的日志框架进行选择 。

  5. 自定义日志实现:MyBatis-Plus 还允许开发者通过实现 Log 接口来扩展自定义的日志输出方式。可以使用 LogFactoryuseCustomLogging 方法来指定自定义日志类。

此外,MyBatis-Plus 通过 LogFactory 日志工厂来确定使用哪种日志实现。如果没有明确指定,它会尝试使用一系列内置日志实现,直到找到合适的日志类或者禁用日志功能。

在实际使用中,可以根据项目需求和环境配置相应的日志实现,以便于更好地监控和调试应用程序。例如,可以在项目启动时通过控制台输出的提示信息来确认当前使用的日志实现方式。如果需要将 SQL 日志和参数打印到日志文件中,可以考虑使用支持文件输出的日志框架,如 Logback 或 Log4j2,并进行相应的配置。

3、自定义日志实现(推荐)

创建自定义日志实现

        首先,我们需要创建一个实现了org.apache.ibatis.logging.Log接口的类,该类会将所有原本打算以DEBUG级别记录的日志改为以INFO级别记录。

package com.ybw.config;import org.apache.ibatis.logging.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** mybatis日志级别改为info** @author ybw* @version V1.0* @className InfoLevelLog* @date 2024/12/2**/
public class InfoLevelLogger implements Log {private final Logger logger;public InfoLevelLogger(String clazz) {this.logger = LoggerFactory.getLogger(clazz);}@Overridepublic boolean isDebugEnabled() {return logger.isInfoEnabled();}@Overridepublic void error(String s, Throwable e) {logger.error(s, e);}@Overridepublic void error(String s) {logger.error(s);}@Overridepublic void debug(String s) {// 修改这里logger.info(s);}@Overridepublic void warn(String s) {logger.warn(s);}@Overridepublic boolean isTraceEnabled() {// 如果需要,也可以将TRACE级别的日志改为INFOreturn logger.isInfoEnabled();}@Overridepublic void trace(String s) {// 修改这里logger.trace(s);}
}

注册自定义日志实现

mybatis配置

mybatis:configuration:log-impl: com.ybw.config.InfoLevelLogger

mybatis-plus配置

mybatis-plus:configuration:log-impl: com.ybw.config.InfoLevelLogger

测试验证

[INFO ] 2024-12-02 14:37:20.403 [main] org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
[INFO ] 2024-12-02 14:37:20.420 [main] org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a3643e3] was not registered for synchronization because synchronization is not active
[INFO ] 2024-12-02 14:37:20.517 [main] o.m.s.t.SpringManagedTransaction - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@3e4afd10] will not be managed by Spring
[INFO ] 2024-12-02 14:37:20.528 [main] c.y.mapper.TestYearMapper.selectList - ==>  Preparing: SELECT id,receive_year FROM test_year WHERE (receive_year = ?)
[INFO ] 2024-12-02 14:37:20.660 [main] c.y.mapper.TestYearMapper.selectList - ==> Parameters: 2024(Integer)
[INFO ] 2024-12-02 14:37:20.751 [main] c.y.mapper.TestYearMapper.selectList - <==    Columns: id, receive_year
[INFO ] 2024-12-02 14:37:20.753 [main] c.y.mapper.TestYearMapper.selectList - <==        Row: 1, 2024-01-01
[INFO ] 2024-12-02 14:37:20.756 [main] c.y.mapper.TestYearMapper.selectList - <==      Total: 1
[INFO ] 2024-12-02 14:37:20.762 [main] org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7a3643e3]
[INFO ] 2024-12-02 14:37:20.923 [main] com.ybw.service.TestYearServiceTest - list:[{"id":1,"receiveYear":{"leap":true,"value":2024}}]

源代码

share: 分享仓库 - Gitee.com

4、动态配置

代码实现

/*** sql打印日志* package命名为mapper方式实现** @methodName: configureLoggers* @return: void* @author: ybw* @date: 2024/7/4**/
@Bean
public void configureLoggers() {LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();Set<String> mapperPackages = findPackagesWithMapper();if (CollectionUtils.isEmpty(mapperPackages)) {return;}mapperPackages.forEach(packageName -> {// 设置packageName包的日志级别为DEBUGcontext.getLogger(packageName).setLevel(Level.DEBUG);});
}/*** 扫描包下所有mapper** @methodName: findPackagesWithMapper* @return: java.util.Set<java.lang.String>* @author: ybw* @date: 2024/7/4**/
public Set<String> findPackagesWithMapper() {// 使用Spring的PathMatchingResourcePatternResolver来查找资源PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);// 示例资源路径,根据实际情况调整String packageSearchPath = "classpath*:**/" + MybatisPlusConstant.Package.BASE_PACKAGE + "/**/*.class";try {Resource[] resources = resolver.getResources(packageSearchPath);Set<String> packagesWithMapper = new HashSet<>();for (Resource resource : resources) {if (resource.isReadable()) {MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);String packageName = ClassUtils.getPackageName(metadataReader.getClassMetadata().getClassName());if (packageName.contains(MybatisPlusConstant.Package.PACKAGE_KEYWORD)) {packagesWithMapper.add(packageName);}}}return packagesWithMapper;} catch (IOException e) {log.error("findPackagesWithMapper error:", e);}return new HashSet<>();
}

源代码

share: 分享仓库 - Gitee.com

http://www.yayakq.cn/news/538301/

相关文章:

  • 平湖网站改版网站页面背景
  • 58网站 做现浇混凝土网站开发中安全性
  • 公司网站想维护服务器抖音小程序怎么挂到抖音上
  • 网站ico制作wordpress撰写设置
  • app 网站开发公司电话微信号30元一个自动发货
  • 黄山游玩攻略及费用快速优化网站排名搜索
  • 移动网站cmsWordPress应用市场模板
  • 免费的建设网站软件下载天元建设集团有限公司2008年招聘
  • 六安手机网站建设汤唯梁朝伟做的视频网站
  • 门户网站的主要特点中国十大购物网站排行榜
  • 布料市场做哪个网站好wordpress 国人原创
  • 网站推广方案编写苏州物联网app开发公司
  • 前程无忧网杭州网站建设类岗位百度一下首页问问
  • 凡科网做音乐网站9377 这种网站怎么做
  • 汽车服务网站建设方案自学网
  • 电子设计网站seo排名软件怎么做
  • 北海网站建设北京建设主管部门网站
  • 建站能赚钱吗网站的后台地址
  • 免费制作永久网站wordpress关闭错误提示
  • 太原建设网站的公司长沙seo网站推广
  • 常宁网站建设joomla 2.5:你的网站建设_使用与管理 pdf
  • 戴尔网站建设规划苏州有什么好玩的景点
  • 苏州网站建设软件网站建设代码容易出错
  • wordpress+站群软件淘宝网站建设服务类目选择
  • 池州有哪些做网站的哈尔滨网站建设资海
  • 网站建设管理实训报告中国铁工建设有限公司网站
  • 网站搭建徐州百都网络搭建wordpress全自动采集插件
  • 建网站能赚钱吗好的学校网站设计
  • 佛山seo百度快速seo
  • 建站流程网站上线承接网站开发 小程序开发