Spring Boot日志的打印与持久化实例分析

发布时间:2022-08-17 17:30:22 作者:iii
来源:亿速云 阅读:250

这篇文章主要介绍“Spring Boot日志的打印与持久化实例分析”,在日常操作中,相信很多人在Spring Boot日志的打印与持久化实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spring Boot日志的打印与持久化实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1. 日志有什么用

日志是程序的重要组成部分,想象一下,如果程序报错了,不让你打开控制台看日志,那么你能找到报错的原因吗?

答案是否定的,写程序不是买彩票,不能完全靠猜,因此日志对应我们来说,最重要的用途就是排除和定位问题。

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

2. 日志怎么用

Spring Boot 项目在启动的时候默认就有日志输出,如下图所示:

Spring Boot日志的打印与持久化实例分析

以上内容就是 Spring Boot 输出的控制台日志信息。

通过上述日志信息我们可以发现以下3个问题:

下面我们一起来找寻这些问题的答案。

3. Spring Boot 自定义日志的打印

3.1 先获取到打印日志对象

在程序中获取日志对象需要使用日志工厂 LoggerFactory,如下代码所示:

 // 1.先得到日志对象(来自 slf4j)
    private static final Logger log =
            LoggerFactory.getLogger(UserController.class);

日志工厂需要将每个类的类型传递进去,这样我们才知道日志的归属类,才能更方便,更直观的定位到问题类。

注意:Logger 对象是属于 org.slf4j 包下的,不要导入错误。

Spring Boot日志的打印与持久化实例分析

因为 Spring Boot 中内置了日志框架 slf4j,所以 咋们可以直接在程序中调用 slf4j 来输出日志

3.2 使用日志对象打印日志

日志对象的打印方法有很多,我们可以先使用 info() 方法来输出日志,如下代码所示:

// 2.使用日志对象提供的打印方法进行日志打印
        log.trace("我是 trace");
        log.debug("我是 debug");
        log.info("我是 info");
        log.warn("我是 warn");
        log.error("我是 error");

打印效果展示:

Spring Boot日志的打印与持久化实例分析

3.3 日志格式说明

Spring Boot日志的打印与持久化实例分析

4. 日志级别

Spring Boot日志的打印与持久化实例分析

Spring Boot日志的打印与持久化实例分析

5. 日志持久化(将日志永久的保存到磁盘的某个位置)

以上的⽇志都是输出在控制台上的,然⽽在⽣产环境上咱们需要将⽇志保存下来,以便出现问题之后追 溯问题,把⽇志保存下来的过程就叫做持久化。

想要将⽇志进⾏持久化,只需要在配置⽂件中指定⽇志的存储⽬录或者是指定⽇志保存⽂件名之后, Spring Boot 就会将控制台的⽇志写到相应的⽬录或⽂件下了。

设置日志的保存路径

在配置文件中,输入如下代码:

# 设置日志的保存路径
# 正确设置日志路径的方式1
logging.file.path=D:/JavaCode/
# 正确设置日志路径的方式2
logging.file.path=D:\\JavaCode\\

保存后:

Spring Boot日志的打印与持久化实例分析

注意:

logging.file.path=D:\JavaCode\

这种写法,Spring Boot 会认为是一个特殊字符,而非目录,所以日志持久化不会成功。

6. 更简单的日志输出—lombok

每次都使用 LoggerFactory.getLogger(xxx.class) 很繁琐,而且每个类都要添加一遍,也很麻烦,这里有种更好的日志输出方式,使用 lombok 来更简单的输出。

6.1 添加 lombok 到当前项目

1.在 pom.xml 中先删除已有的 lombok 依赖

2.下载插件

Spring Boot日志的打印与持久化实例分析

下载好之后,手动引入 lombok 依赖

Spring Boot日志的打印与持久化实例分析

Spring Boot日志的打印与持久化实例分析

6.2 使用 @Slf4j 得到日志对象 log

@Controller
@ResponseBody
@Slf4j // 替代了之前需要通过 LoggerFactory.getLogger 操作
public class UserService {
        @RequestMapping("/sayhi2")
        public void sayHi2() {
                log.trace("我是 trace");
                log.debug("我是 debug");
                log.info("我是 info");
                log.warn("我是 warn");
                log.error("我是 error");
        }
}

控制台打印结果如下:

Spring Boot日志的打印与持久化实例分析

到此,关于“Spring Boot日志的打印与持久化实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. spring boot logging 日志设置
  2. Spring boot与数据持久化Spring Data JPA集成实战

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

springboot

上一篇:Apache Maven3.6.0怎么下载安装和配置环境

下一篇:Windows系统下如何安装tensorflow

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》