Spring Boot日志文件

 下Spring Mvc~

目录

1.日志的作用

2.日志如何使用

3.自定义日志打印

                     3.1在程序中得到日志对象

                     3.2使用日志对象打印日志

                     3.3日志格式说明

4.日志级别

                     4.1日志级别的分类与使用

5.日志持久化

6.更简单的日志输出lombok

                     6.1添加lombok依赖

                     6.2输出日志

                     6.3lombok原理解释


1.日志的作用

日志的作用就是说,当我们程序发生错误的时候,我们能够得到反馈,比如我们在idea上运行程序的时候,要是出现了报错,就会通过idea的控制台反馈给我们。当然除了发现问题和定位之外,日志还有以下用途:

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

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

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

2.日志如何使用

当Spring Boot启动的时候,就会有日志在控制台打印输出,这是因为Spring Boot内置了日志框架,不然就输出不了日志。下面的示例就是spring boot下的日志打印:

3.自定义日志打印

①在一个类中先获取到打印日志的对象,而且日志框架提供的日志对象,而日志框架默认已经集成到Spring Boot里了

②使用日志对象提供的方法实现日志的打印。

                     3.1在程序中得到日志对象

①需要使用日志工厂LoggerFactory工厂:

形如以下代码进行打印:

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

②注意这里的LoggerFactory是来自Slf4j的:

                     3.2使用日志对象打印日志

①日志对象的打印方法有很多种,后面我们将会逐个介绍他们之间的关联,总而言之,都是由log对象进行形如下方的打印:

package com.example.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
public class UserController {
    //①得到日志对象
    private final static Logger log=LoggerFactory.getLogger(UserController.class);
    //②自定义打印日志
    @RequestMapping("/sayhi")
    public void run(){
        log.trace("这是trace日志");
        log.debug("这是debug日志");
        log.info("这是info日志");
        log.warn("这是warn日志");
        log.error("这是error日志");
    }
}

结果如下:

                     3.3日志格式说明

用一张图对日志格式的各个部分进行说明:

4.日志级别

什么是日志级别:

日志的级别就是为了筛选符合目标的日志信息的

                     4.1日志级别的分类与使用

①日志级别的分类:

trace:微量,少许的意思,级别最低;( 少许日志。)
info:普通的打印信息; (普通日志)
debug:需要调试时候的关键信息打印;(普通信息日志)
warn:警告,不影响使用,但需要注意的问题;.(警告日志)
error:错误信息,级别较高的错误日志信息;(错误日志)
fatal:致命的,因为代码异常导致程序退出执行的事件。(致命日志)
②日志的等级:

③日志等级的含义:

当我们定义低级别的时候,打印日志可以把所有的等级打印出来

 eg.

结果如下:

 设置局部文件夹日志级别:

当包含了全局和局部的日志级别设置时,那么当访问局部日志时,使用的是局部日志级别,也就是局部日志级别的优先级高于全局日志级别。 

5.日志持久化

①什么是日志持久化?

实质上就是将控制台打印下来的日志给保存下来。因为我们知道,当我们重启服务器后,新的日志会把原有的日志进行覆盖,所以这个时候为了方便查看曾经的日志,我们需要把它给保存下来

②保存的方法:

a.在配置文件中设置保存的路径(注意:书写的时候需要双\\进行转义为\;或者采用linux中的/写法)

执行完后结果如下:

 我们就可以在这里访问日志了,也就是日志被保存在了磁盘上。

b.在配置文件中设置保存的文件名:

 执行完结果如下:

6.更简单的日志输出lombok

                     6.1添加lombok依赖

在pom.xml中添加依赖:(如果我们在建项目的时候已经引入了lombok的依赖的话,这一步就可以省略了)

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

			<optional>true</optional>
		</dependency>

                     6.2输出日志

引入lombok后,此时就不需要再使用LoggerFactory了,只需要一个注解@Slf4j就可以了:

代码如下:

package com.example.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class UserController {
    //获取到日志对象
    @RequestMapping("/sayhi")
    public  void func(){
        log.trace("我是trace");
        log.debug("我是debug");
        log.info("我是info");
        log.warn("我是warn");
        log.error("我是error");
    }
}

结果如下:

 

                     6.3lombok原理解释

我们就直接用一张图来说明这个原理:(.java文件的话就是class里面的字节码文件,而这里@Slf4j的写法让整个过程变得更简单了)

下期将为大家介绍Spring MVC相关操作~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张洋洋~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值