一、日志介绍
1、日志演变
- 直接将项目运行时的信息输出在控制台,system.out.println;
- 将日志抽取出来,放在一个文件中;
- 日志门面(抽象类),日志具体实现类(实现类);类似JDBC驱动;
2、日志进程
- 抽象层:SLF4j(Simple Logging Facade for Java);
- 实现类: Log4j ---- LogBack (三个都是同一个人写,均是SLF4j的实现类);
- Log4j2: apache重新写的一个日志框架,目前还没广泛应用;
- 每一个日志实现框架都有自己特别的日志配置文件;
二、SpringBoot日志框架使用
选用SLF4j和LogBack
application.yaml
# 1. logging.level: 为一个map ,规定每个包下面的日志级别,
# 默认采用info级别,默认输出到控制台;
#
# 2. loggiing.path: 在当前磁盘的根路径下,创建spring_sz/log文件夹,
# 并使用spring.log作为默认文件夹名,将日志放进去;
#
# 3. logging.file:shuzhan.log:
# 不指定路径:在项目路径下创建shuzhan.log并日志写入;、
# 可以指定完整的路径,就会在指定的路径下面生成日志;
# 若同时指定了file和path: file起作用;一般指定path;
#
# 4. logging.pattern: 输出日志的格式;
# %d{yyyy-MM-dd HH:mm:ss:SSS}: 日期
# [%thread]:线程名称
# %-1level: 日志级别
# %msg%n': 日志信息及换行
logging:
level:
com.zte.business.bo: trace
com.zte.business.controller: info
path: /spring_sz/log
pattern:
console: '%d{yyyy-MM-dd HH:mm:ss:SSS} --- [%thread] --- %-1level --- %logger{36} --- %msg%n'
file: '%d{yyyy-MM-dd HH:mm:ss:SSS} === [%thread] === %-1level === %logger{36} === %msg%n'
测试类
package com.zte.business.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Api(tags = "日志测试类")
@RequestMapping("/logger")
@RestController
public class LoggerController {
Logger logger = LoggerFactory.getLogger(LoggerController.class);
@GetMapping("/write")
public String writeLog(){
/** 1. 日志记录: trace--debug--info--warn--error: 由低到高
* 2. 可以规定日志级别,这样只会打印出该日志及更高级别的日志;*/
logger.trace("这是trace日志记录");
logger.debug("这是debug日志记录");
logger.info("这是info日志记录");
logger.warn("这是warn日志记录");
logger.error("这是error日志记录");
return "日志测试完毕";
}
}