【运维篇】四、服务日志控制

文章目录

  • 1、日志基础
  • 2、记录日志
  • 3、快速创建日志对象
  • 4、日志级别更改
  • 5、日志输出格式控制
  • 6、日志记录到文件

1、日志基础

日志的作用:

  • 编程期调试代码
  • 记录日常运营重要信息(峰值流量、平均响应时长……)
  • 记录应用报错信息(错误堆栈)
  • 运营期记录运维过程数据(扩容、宕机、报警……)

日志的六个级别:

  • TRACE:运行堆栈信息,使用率低
  • DEBUG:程序员调试代码使用
  • INFO:记录运维过程数据
  • WARN:记录运维过程报警数据
  • ERROR:记录错误堆栈信息
  • FATAL:灾难信息,合并计入ERROR

常用的4种:即debug、info、warn、error

2、记录日志

SpringBoot默认使用SLF4J+logback:

private static final Logger log = LoggerFactory.getLogger(BookController.class);

demo:

@RestController
@RequestMapping("/books")
public class BookController extends BaseController {

	private static final Logger log = LoggerFactory.getLogger(BookController.class);
	
	@GetMapping
	public String getById(){
		log.debug("debug ...");
		log.info("info ...");
		log.warn("warn ...");
		log.error("error ...");
		return "springboot is running...";
	}
}

3、快速创建日志对象

使用lombok提供的注解@Slf4j简化开发,减少日志对象的声明操作。

@Slf4j
@RestController
@RequestMapping("/books")
public class BookController {

	@GetMapping
	public String getById(){
		log.debug("debug info...");
		log.info("info info...");
		log.warn("warn info...");
		log.error("error info...");
		return "springboot is running...";
	}
}

4、日志级别更改

设置日志输出级别:

# 开启debug模式,输出调试信息,常用于检查系统运行状况
debug: true

# 设置日志级别,root表示根节点,即整体应用日志级别
logging:
  level:
    root: debug

设置日志组,控制指定包对应的日志输出级别,也可以直接控制指定包对应的日志输出级别:

logging:
  # 设置日志组
  group:
    # 自定义一个组名,设置当前组中所包含的包
    ebank: com.llg.controller
  level:
    root: warn
    # 为对应组设置日志级别
    ebank: debug
    # 直接对包设置日志级别
    com.llg.controller: debug

5、日志输出格式控制

【运维篇】四、服务日志控制_第1张图片

  • PID:进程ID,用于表明当前操作所处的进程,当多服务同时记录日志时,PID的作用就体现出来了
  • 所属类/接口名:当前显示信息为SpringBoot重写后的信息,名称过长时,简化包名书写为首字母,甚至直接删除

关于这个输出格式,可自定义:

logging:
  pattern:
    console: "%d - %m%n"
  • %d表示日期时间
  • %t表示线程名,即%thread
  • %m:日志消息,即%msg
  • %n是换行符
logging:
  pattern:
    console: "%d %clr(%p) --- [%16t] %clr(%-40.40c){cyan} : %m %n"

# %clr是给加颜色,%clr(%p)对应INFO为绿色
# 16t的数字16设置长度和格式
# {cyan}即青色
# PID不是这么简单设置的,先不管

以上这个格式的效果:

【运维篇】四、服务日志控制_第2张图片

6、日志记录到文件

设置日志文件:

logging:
  file:
    name: myserver.log

默认路径在project下:

【运维篇】四、服务日志控制_第3张图片
打开看下内容:

【运维篇】四、服务日志控制_第4张图片
更详细的配置:

logging:
  file:
    name: server.log
  logback:
    rollingpolicy:
      max-file-size: 2KB  # 设置小点,这儿要测试分文件的效果
      file-name-pattern: server.%d{yyyy-MM-dd}.%i.log

当达到每个日志文件的最大值max-file-size,则分文件,文件名以日期命名后加%i,即xx.1.log、xx.2.log等

【运维篇】四、服务日志控制_第5张图片

你可能感兴趣的:(SpringBoot,运维,SpringBoot,日志)