Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

这篇具有很好参考价值的文章主要介绍了Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习视频:【编程不良人】2021年SpringBoot最新最全教程

第七章、本地测试

频繁启动服务器进行功能的访问非常繁琐、SpringBoot给我们提供了用于测试的依赖,自动集成Junit,使用了这个以来后,test包在打包时不会被打包进去

Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

  • @SpringBootTest注解

    修饰在类上,用来启动本地Spring环境

@SpringBootTest
public class EmpServiceTest {
    @Autowired
    private EmpService empService;

    @Test
    public void testFindAll() {
        empService.findAll().forEach(emp -> System.out.println("emp = " + emp));
    }
}

第八章、热部署

  • 作用

    热部署是指在应用程序运行过程中,无需重启应用程序即可实时更新代码和资源文件的过程。在Spring Boot中,热部署可以帮助开发人员在开发阶段快速调试和修改代码,提高开发效率。

  • 开启热部署

    引入依赖

    <!--热部署依赖 devtools-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <!-- optional:该依赖是否可以传递 true不能传递,默认为false:可传递-->
        <optional>true</optional>
    </dependency>
    

    <optional></optional> 标签:决定该依赖是否可以传递 true不能传递,默认为false:可传递

  • IDEA设置

    开启自动编译

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

    如果没有compiler.automake.allow.when.app.runing这个选项,那就进行服务器设置:按照下图将两个选项 设置成Update classes and resources

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

第九章、日志处理(Logback)

  • Logback

    Logback是Java社区中最广泛使用的日志框架之一。它是Log4j的后继者,logback的架构由三个类组成:Logger(记录器)、Appender(附加器)和Layout(布局)

    logback分为具体的三个模块:logback-core,logback-classic,logback-access。是对log4j日志进一步的改进

总结:logback也是一个开源日志组件和log4j作用一致,都是用来生成日志,logback更加轻量

  • 日志的级别

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

    日常开发中,最常用的四个就是:DEBUG、INFO、WARN、ERROR

  • 项目中日志分类

    1. rootLogger:根全局日志,监听项目中所有的运行日志,包括引入依赖jar中的日志
    2. logger:指定包级别/子日志 用来监听项目中指定包中的日志信息
  • 配置日志

    SpringBoot框架中默认根日志为INFO

    sping-boot-starter集成了logback

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

    启动springboot时,根全局日志就会按照默认的INFO级别,自动输出信息

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

  • 配置日志

    # 配置日志
    logging:
      level:
        root: debug # 调整根日志展示为debug
    

    重新启动以后可以看到调试信息变得非常多,不利于查看,所以不建议根日志设为Debug级别

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

  • 输出指定包的日志级别

    # 配置日志
    logging:
      level:
        com.baizhi.dao: debug # 输出指定包的日志级别。根日志保持默认即可
    

    进行测试 成功看到方法的调试结果,包括SQL语句以及返回结果数,

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

  • 生成日志文件

    # 配置日志
    logging:
      level:
        root: info # 调整根日志展示为debug
        com.baizhi.dao: debug # 输出指定包的日志级别。根日志保持默认即可
      **file:
        name: run.log #指定生成日志文件名称
        path: ./ #将日志文件生成当前目录(当前项目的目录中)**
    

    测试下,重新启动后,成功生成日志文件

    Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

  • 使用log代替打印输出

    先指定具体的包,比如我要测试service里的方法,那么就指定service

    # 配置日志
    logging:
      level:
        com.baizhi.service: debug
    

    在需要输出的类中声明日志对象,然后就可以调用log的debug、info、warn、error等方法输出调试结果了

    import org.slf4j.Logger;
    @Service
    @Transactional
    public class EmpServiceImpl implements EmpService {
        // 声明一个日志对象  Logger选择slf4j包下面的
        private static final Logger log = LoggerFactory.getLogger(EmpService.class);
    
        @Autowired
        private EmpDAO empDAO;
    
        public EmpServiceImpl(EmpDAO empDAO) {
            this.empDAO = empDAO;
        }
    
        @Override
        public List<Emp> findAll() {
            return empDAO.findAll();
        }
    
        @Override
        public void save(Emp emp) {
            log.debug("姓名:{}" , emp.getName());
            log.debug("工资:{}" , emp.getSalary());
            log.debug("生日:{}" , emp.getBirthday());
            empDAO.save(emp);
        }
    

下一章:Spring Boot学习随笔- JSP小项目-员工管理系统(验证码生成、增删改查)文章来源地址https://www.toymoban.com/news/detail-750576.html

到了这里,关于Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题本地化回答

    Authors: Long Bai1† , Mobarakol Islam2† , Lalithkumar Seenivasan3 and Hongliang Ren1,3,4∗ , Senior Member, IEEE Source:  2023 IEEE International Conference on Robotics and Automation (ICRA 2023) May 29 - June 2, 2023. London, UK Abstract: 尽管有计算机辅助模拟器和录制的外科手术视频,但初级住院医师仍然严重依赖专家来回

    2024年03月27日
    浏览(49)
  • Remix本地化,加载本地合约文件,本地链接Remix

    智能合约IDE,在线的比较卡,而且切换网络面临文件丢失的风险,选择本地搭建Solidity本地编辑环境,Remix-IDE + Remixd组合,加载本地合约代码。这里用到两个工具: Remix IDE(本地IDE)+ Remixd (链接) Remix IDE 项目源码:https://github.com/ethereum/remix-project 介绍: Remix IDE是一个本地部署运

    2024年02月13日
    浏览(62)
  • Excalidraw本地化部署

    1 - Excalidraw介绍 Excalidraw是一个开源、小巧易用的手写风格的框图画板软件。 ​excalidraw官网地址:https://excalidraw.com/​ 2 - Excalidraw本地化安装(git方式) 2-1安装部署 在terminal中,输入: 安装完成后,在terminal中,进入项目文件 2-2 安装依赖环境 - nodeJS NodeJS下载地址: nodejs下载

    2024年02月14日
    浏览(50)
  • 本地化GPT:LangChain + ChatGLM == 知识本地库

    OpenAI发布的ChatGPT Plugin刚刚杀死了一个创业公司LangChain(刚获得1000万美金种子轮融资) 由于语言模型的输出是通过自回归+采样[可选]完成的,在高精度场景下,即使是超大语言模型,发生错误概率也是指数级的。同时,采样也很容易引入错误。比如地址中的数字门牌号,模型

    2024年02月11日
    浏览(49)
  • Remix 完全本地化部署

    1.简介 Remix 是我们开发 Solidity 智能合约的常用工具,有时候我们会直接访问在线版的 Remix-IDE。 https://remix.ethereum.org/ 但是,如何将在线Remix链接本地文件系统呢,下面则是部署步骤 2、部署 Remixd Remixd 的安装使用步骤如下: 安装 Remixd:  npm install -g @remix-project/remixd 启动 Rem

    2024年02月17日
    浏览(50)
  • WPF 本地化的最佳做法

      应用程序本地化有很多种方式,选择合适的才是最好的。这里只讨论一种方式, 动态资源(DynamicResource) 这种方式可是在不重启应用程序的情况下进行资源的切换,不论是语言切换,还是更上层的主题切换。想要运行时切换不同的资源就必须使用 动态资源(DynamicResou

    2024年02月13日
    浏览(40)
  • 【WPF】 本地化的最佳做法

      应用程序本地化有很多种方式,选择合适的才是最好的。这里只讨论一种方式, 动态资源(DynamicResource) 这种方式可是在不重启应用程序的情况下进行资源的切换,不论是语言切换,还是更上层的主题切换。想要运行时切换不同的资源就必须使用 动态资源(DynamicResou

    2024年02月12日
    浏览(44)
  • 本地化部署stable diffusion

    本文是根据https://zhuanlan.zhihu.com/p/606825889 和 https://blog.csdn.net/cycyc123/article/details/129165844两个教程进行的部署测试,终端是windows 前期需要安装python与git环境,这里不赘叙了,首先是几个下载包,可以提前下载: stable diffusion的web界面环境 https://pan.xunlei.com/s/VNQ4LqoKBidPdqSj2xMioVhs

    2023年04月09日
    浏览(70)
  • hadoop本地化windows部署

    需求背景是java代码提交服务器测试周期流程太慢,需要一种能直接在windows本地部署的相关组件。分析项目现有大数据技术栈,包括hadoop、hive和spark(sparksql),存储和计算都依赖windows系统。期中hive保存在本地的hadoop上,spark提交在hadoop的yarn上。 · hadoop on windows · hive on windows

    2024年02月16日
    浏览(78)
  • Unity官方本地化插件localization

    官方文档地址:https://docs.unity3d.com/Packages/com.unity.localization@1.0/manual/QuickStartGuideWithVariants.html PackageManager搜索Localization完成对应插件的安装   PlayerSetting-Localization 创建本地化相关配置   创建之后点击Locale Generator可以选择需要支持的语言   TableCollection是一组本地化数据的集合

    2024年02月08日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包