Spring Boot日志文件

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Spring Boot日志文件

🧊1.日志有什么作用


日志可以记录各种信息,包括错误信息、警告信息、调试信息、访问记录等等。一般来说,日志还可以记录时间戳、执行的函数、运行时参数、异常信息、程序执行路径等相关信息,便于开发人员进行问题排查和系统优化。


🧊2.认识日志


日志是指程序或系统在运行过程中所产生的记录信息,通常用于跟踪和调试应用程序、系统故障分析、性能评估和监控等


以上就是Spring Boot的日志内容

默认日志都是info级别的

Spring Boort内置了日志框架

默认情况下日志不是 自定义打印的

但是当程序员想要自定义打印也有办法


🧊3.自定义打印日志


自定义打印日志分为两步

1.得到日志对象

2…使用日志对象的方法打印日志


🥝3.1得到日志对象


要使用LoggerFactory,日志工厂,Logger 对象是属于 org.slf4j 包下的


🥝3.2利用日志对象的方法打印日志

f5132f8eff6948b3925dde3faefaf61a.png


完整代码


package com.example.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2023-08-02
 * Time: 16:35
 */
@RestController
public class UserController2 {
    public static Logger logger= LoggerFactory.getLogger(UserController2.class);
    @RequestMapping("/user2")
    public void  sayHi(){
        logger.trace("热");
        logger.debug("烈");
        logger.info("的");
        logger.warn("不");
        logger.error("是");
    }
}


运行结果

看到了由info及info以后的日志,因为项目默认级别就是按照info开始打印的

那么开发人员可以设定从哪个日志开始打印(在application.test-properties文件下设置,因为我们用的端口就是测试环境下的端口号)

ef48b68ba57d47e5ae950ad99e4b8eaa.png


也可以指定某个文件的日志打印级别


🥝3.3日志格式说明



🧊4.日志级别

🥝4.1 认识日志级别


日志级别由低到高:

trace

debug

info

warn

error

fatal


🥝4.2日志级别作用


日志级别是指日志的重要性或严重程度。日志级别的作用是帮助开发人员或运维人员快速定位和解决问题,以便更好地维护和管理应用程序或系统。不同的日志级别表示不同的日志信息


1691222109882.png

🧊5. 日志持久化


当项目在运行的时候我们可以发现日志存在,但是当项目关闭,日志就没有了,所以我们要保存日志以文件的形式保存在文件中,有两个做法

1.设置日志的保存路径(还是写在application-test.properties中)

ee05978f27d8493b9d7205d4ee438957.png

运行

上面显示大小为0kb,真的是这样吗?,我们打开看看

可以看到上面显示了项目中的日志

多次运行项目观察

可以看到日志的保存不是覆盖保存的, 每一次的运行都会被记录下


2.设置文件保存名

这样写会在项目下生成一个日志文件

我们也可以加上存储路径


🧊6.更简单的日志输出-Lombok


每次都使⽤ LoggerFactory.getLogger 很麻烦,这⾥讲⼀

种更好⽤的⽇志输出⽅式,使⽤ lombok 来更简单的输出


🥝6.1 添加lombok依赖


idea应用商店搜素lombok下载

然后添加lombok依赖



🥝6.2 使用Lombok输出日志


package com.example.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2023-08-02
 * Time: 17:44
 */
@RestController
@Slf4j//有了这个注解,就可以直接log对象了
public class UserController3 {
    @RequestMapping("/user3")
    public void say(){
        log.info("happy");
    }
}


lombok可以提供@Getter,@Setter,@Tostring注解,不用再自己写getter,setter,tostring方法了,还有一个注解是这三个的组合注解,@Data


🥝6.3解释lombok运行原理


说到lombok的运行原理,我们就要说到Java代码的编译和运行了

写好的代码经过编译变成了.class文件,然后到jvm加载运行

4212e37be86847359218c5c1d10c0a43.png

有了lombok,就变成


在代码编译期间把lombok注解变成相应的代码,不影响最后的运行


好了,今天的讲解就到这里,我们下期再见,886!

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
1月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
89 2
|
2月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
321 1
日志收集和Spring 微服务监控的最佳实践
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
541 5
|
8月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `<appender>` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `<logger>` 和 `<root>` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2126 1
|
8月前
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1013 0
|
8月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
808 0
|
4月前
|
机器学习/深度学习 XML Java
【spring boot logback】日志logback格式解析
在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。
794 5
|
4月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
889 0
|
5月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
632 0
|
1月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
283 3