SpringBoot日志操作及使用/在IDEA中SpringBoot怎么使用热部署/SpringBoot自动部署更新修改内容

写在前面
继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!

4.日志

1.日志基础

1.作用
  • 编程器调试代码
  • 运营期记录信息
2.日志级别
  • TRACE:运行堆栈信息,使用率低
  • DBUG:程序员调试代码使用
  • INFO:记录运维过程数据
  • WARN:记录运维过程报警数据
  • ERROR:记录错误堆栈信息
  • FATAL:灾难信息,合并计入ERROR
3.代码操作
  • 添加日志记录
@RestController  
@RequestMapping("/books")  
public class BookController {  
// 创建记录日志对象  
 private static final Logger log = LoggerFactory.getLogger(BookController.class);  
 @GetMapping  
 public String testSpringBoot()  
    {  
        String str = "Spring Boot is running!";  
 System.out.println(str);  
 log.debug("debug");  
 log.info("info");  
 log.warn("warning");  
 log.error("error");  
 return str;  
 }  
}
  • 用lombok中的@Slf4j简化日志对象创建代码
@Slf4j  
@RestController  
@RequestMapping("/books")  
public class BookController {  
// 创建记录日志对象  
//    private static final Logger log = LoggerFactory.getLogger(BookController.class);  
 @GetMapping  
 public String testSpringBoot()  
    {  
        String str = "Spring Boot is running!";  
 System.out.println(str);  
 log.debug("debug");  
 log.info("info");  
 log.warn("warning");  
 log.error("error");  
 return str;  
 }  
}
  • 设置日志输出级别
#开启DEBUG模式,输出调试信息,常用于检查系统运行状况  
debug: true  
  
#设置日志级别,root表示根节点,即整体应用日志级别  
logging:  
# 设置日志组  
 group:  
# 自定义组名,设置当前组中所包含的包  
 	demo: com.example.controller  
  level:  
    root: info  
# 为对应组设置日志级别  
 demo: warn

2.日志输出格式控制

1.格式

主要分为时间,级别,PID,所属线程,所属类名/接口名以及日志信息,如图
![[Pasted image 20220408112036.png]]
其中:

  • PID,进程ID,用于标明当前操作所处进程,当多服务同时记录日志时,该值可用于协助程序员调试程序
  • 所属类/接口名,当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除
2.设置输出格式
2.1 标签含义

%d :日期,%m:消息,%n:换行,%p:日志级别,%5p:占5位字符
%clr(xx):xxx显示为彩色,%t:线程名(thread),
%-40.40c:左对齐类名(class)且最大长度为40且超过40就截取,{xx}:颜色

2.2 样例
  • 样例1
logging:
#    设置日志输出格式  %d 日期 %m消息 %n换行  
  pattern:  
    console:"%d - %m%n"

运行后如图![[Pasted image 20220727135545.png]]

  • 样例2
console: "%d %clr(%5p) %n"

运行结果![[Pasted image 20220727140234.png]]

  • 样例3
console: "%d %clr(%5p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

运行结果![[Pasted image 20220727141135.png]]

3.日志文件

3.1 目的

便于维护时查看日志进行相应操作,控制台输出不安全

3.2 设置日志文件
  • 设置,在application.yml中输入如下代码即可
logging:
	#   设置日志文件,在根目录会找到
	file:  
	  name: server.log
  • 文件位置如图所示 ![[Pasted image 20220727170044.png]]
3.3 优化
  • 目的:让日志按日期大小分为多个日志文件,便于进行查阅,防止单个文件太大而打不开
  • 设置 ,类似于上文
logging:
	logback:  
	  rollingpolicy:  
	    max-file-size: 4KB  
	    file-name-pattern: server.%d{yyyy-MM-dd}.%i.log
  • 文件位置类似与上文

三、使用开发篇

注:

  • idea创建新模块hot_deploy,项目内容参考 基础篇中# 五.SSMP整合案例!
  • 不同之处1:controller层,如图![[Pasted image 20220727175839.png]]
  • 不同之处2:users.html,如图![[Pasted image 20220728192159.png]]

3.1 热部署

3.1.1 手动启动热部署

3.1.1.1 热部署

项目某一文件修改后无需进行重启服务器重新发布项目,只需要简单配置即可更新到修改后的内容

3.1.1.2 操作
  • 在controller中查询用户号进行标注,如图![[Pasted image 20220727180251.png]]
  • 开启开发者工具:在pom的xml中加入如下代码
<!--        Springboot热部署配置-->  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-devtools</artifactId>  
        </dependency>
  • 激活热部署:CTRL+F9
  • 更改代码后激活热部署即可看见改变
3.1.1.3 关于热部署
  • 重启:自定义开发代码,包含类,页面,配置文件等,加载位置restart类加载器
  • 重载:jar包,加载位置base类加载器

3.1.2 自动启动热部署

  • 右键项目打开settings设置
  • 找到Build,Exception,Deployment中的Complier
  • 选中Build project automaticaly应用确认即可,如图![[Pasted image 20220728170606.png]]
  • 2021版前IDEA配置方式:快捷键Alt+Ctrl+Shift+/后选择Registry中的complier.automake.allow.when .app.running即可,如图
    ![[Pasted image 20220728190155.png]]
  • 2021版IDEA后配置方式:找到项目设置中的Tools的Advanced Settings中的Complier,选择Allow auto-make to start even if when application is currently runnning,如图![[Pasted image 20220728190958.png]]
  • 激活方式:IDEA失去焦点5秒后

3.1.3 热部署范围配置

  • 默认不触发重启的目录列表:
    • /META-INF/maven
    • /META-INF/resources
    • /resources
    • /static
    • /public
    • /templates
  • 自定义不参与热部署
#  自定义不参与热部署  
  devtools:  
    restart:  
      exclude: config/applications.yml,static/**

3.1.4 关闭热部署

  • 配置文件中关闭
    • 在application.yml文件中进行关闭,如下
    	#  自定义不参与热部署  
    devtools:  
    	 restart:  
     	 exclude: config/applications.yml,static/**  
        	# false为关闭  
      	 enabled: false
    
  • 在项目启动类中用高一级语句来覆盖关闭热部署,如图在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值