SpringBoot日志文件

目录

自定义日志打印

 日志级别

日志级别配置

日志持久化 

Lombok

Lombok原理


日志文件可以帮助我们查看程序的错误原因,帮助我们快速定位到问题

除了可以发现和定位问题之外,我们还可以通过日志实现以下功能:

1、记录用户登录日志,方便分析用户是正常登陆还是恶意破解用户

2、记录系统的操作日志,方便数据恢复和定位操作人

3、记录程序的执行时间,方便为以后优化程序提供数据支持

SpringBoot内置了日志框架,我们可以自定义打印日志

自定义日志打印

SpringBoot内置了日志框架slf4j,我们可以直接利用这个框架

1、获取日志对象,这就要使用到日志工厂LoggerFactory,这个类是属于slf4j包的

2、使用日志对象提供的方法打印日志

@Controller
public class User {
    //1、得到日志对象
    private static Logger logger = LoggerFactory.getLogger(User.class);
    //2、利用日志对象提供的方法
    @PostConstruct
    public void print() {
        logger.info("hello");
    }
}

 格式说明:

 日志级别

日志级别是为了筛选符合目标的日志信息的,将日志设置多个级别,可以选择某一个级别的日志信息来查看

日志级别的分类:

  1. trace:微量少许,级别最低
  2. debug:需要调试的关键信息
  3. info:普通的打印信息
  4. warn:警告,不影响使用,但是要注意的信息
  5. error:错误信息
  6. fatal:致命的,因为代码异常导致程序退出执行的事件(不需要自定义,程序会自己显示)

日志级别配置

默认日志级别是info

@Controller
public class User {
    //1、得到日志对象
    private static Logger logger = LoggerFactory.getLogger(User.class);

    //2、利用日志对象提供的方法
    @PostConstruct
    public void print() {
        logger.trace("trace");
        logger.debug("debug");
        logger.info("info");
        logger.warn("warn");
        logger.error("error");
    }
}

使用logging.level配置日志级别

1、配置全局的日志级别:

logging.level.root=debug

设置全局的日志级别为debug

2、设置局部文件夹的日志级别

logging.level.文件夹

logging.level.com.example.demo=warn

日志持久化 

我们将日志以文件的形式记录在磁盘上,就可以随时查看了

配置存储文件路径:

logging:
  file:
    path: C:\Users\30283\Desktop

程序运行后会在桌面上创建文件

SpringBoot日志文件_第1张图片

SpringBoot日志文件_第2张图片

 文件内存放的就是日志内容

配置文件名称:

logging:
  file:
    name: C:\Users\30283\Desktop\Spring-log.log

Lombok

每一次我们都要获取日志对象,我们可以使用lombok来更加简单的输出

1、添加Lombok依赖

安装插件EditStarters,可以更快速的增加依赖

SpringBoot日志文件_第3张图片

 2、在pom.xml的界面,右键-》generate-》EditStarts 选择添加Lombok

 依赖就导入了

3、使用注解 @Slf4j

@Controller
@Slf4j
public class Control {
    @PostConstruct
    public void print() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("error");
    }
}

@Slf4j注解,可以起到创建日志对象的作用,变量名为log,可以直接使用变量名,这个变量名是lombok提供的

Lombok原理

我们打开target中运行生成的class文件

SpringBoot日志文件_第4张图片

 也就是说,lombok会自动生成这个代码来获取日志对象,然后编译生成class文件

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

Lombok还有其他注解:

SpringBoot日志文件_第5张图片

 

你可能感兴趣的:(spring,boot,java,后端)