SpringBoot 日志文件

这篇具有很好参考价值的文章主要介绍了SpringBoot 日志文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.日志的作用

日志是程序的重要组成部分,最常见的,当程序报错时,打开控制台就能看到报错信息,这些就是日志.通过日志,可以看到错误信息,找到错误原因

除了发现和定位问题,日志还能实现这些实用的功能:

记录用户登录日志,分析用户是正常登录还是恶意破解用户(用来分析用户的行为)

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

记录程序时间,为优化程序提供数据支持

2.如何使用日志?

当我们启动SpringBoot项目时,控制台就会出现系统打印的日志

这是SpringBoot内置了日志框架,才能输出日志

SpringBoot 日志文件 默认情况下,输出的日志并非是开发者自定义的,那么开发者如何自定义日志呢?

当项目重启,控制台就会输出新的日志,那么旧的日志是不能被保存的,如何让日志持久保存呢?

常见的日志框架 

SpringBoot 日志文件

SpringBoot内置的日志框架:Slf4j  日志实现是:logback

我们并没有在依赖中引入,是因为SpringBoot已经内置了

SpringBoot 日志文件

SpringBoot 日志文件

所以我们可以在程序中直接调用Slf4j直接输出日志

自定义日志实现(尽可能设施8080之后的端口,端口太小可能启动失败!)

SpringBoot 日志文件

结果:

SpringBoot 日志文件 

控制台:

SpringBoot 日志文件

可以看到:SpringBoot输出的日志非常详细,可以用来定位问题位置

我们打印的没有时间,位置等等.无法精确定位到一个问题,并且不支持持久化,不能保存

使用SpringBoot日志打印分为两步

1.得到日志对象

SpringBoot 日志文件

参数是类类型

SpringBoot 日志文件

 这里传参,就决定了日志打印时,打印的类的信息

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

 SpringBoot 日志文件

SpringBoot 日志文件上述只出现了三个自定义打印的日志信息:info,error,warn,和日志级别有关

info是默认的日志级别,日志打印只能打印比默认级别更高的日志信息,所以trace和debug没打印

这里有日志时间,级别,日志线程的id,日志的线程名,简化包名加完整类名,自定义信息

@Controller
@ResponseBody
public class UserController {

    //1.得到日志对象
    /*
    每个日志对象只归属于一个类,是类私有的
    日志打印时需要输出:是在哪个类中的日志
    修饰符为private,静态方法可直接调用
    不期望被修改,加上final
     */
    private static final Logger log = LoggerFactory.getLogger(UserController.class);

    //2.打印日志
    @RequestMapping("/hi")
    public String hi(){
        //System.out.println("打印日志");
        log.trace("i'm trace");
        log.debug("i'm debug");
        log.info("i'm info");
        log.error("i'm error");
        log.warn("i'm warn");
        return "hi world -> ";
    }
}

使用另一个注解也能完成:@RestContrller ,更加简单

SpringBoot 日志文件

SpringBoot 日志文件

SpringBoot 日志文件

打印的日志是没有包名的,如果一个项目其它包中有相同名称的类,就分不清楚了

自定义日志推荐使用参数为类类型的,信息更全

3.日志级别

日志级别可以筛选出重要的信息,设置为error,就能看到程序的报错日志,普通的调试日志和业务日至就忽略了

日志级别可以控制不同环境下,一个程序是否需要打印日志,开发时需要详尽的日志帮助开发;生产环境下需要尽可能少的日志信息,保证程序的性能和安全性

日志级别分 类与使用

日志级别从低到高分为:

trace:级别最低

debug:需要调试的时候的关键信息打印

info:(默认日志级别)普通信息打印

warn:警告,不影响使用,但需要注意问题

error:错误信息,级别较高

fatal:致命的,代码异常导致程序退出

如何设置日志默认级别?
在配置文件中,设置  logging.level  即可

这是yml的写法:

SpringBoot 日志文件

重启项目,访问 UserController 的 hi 方法 

4.日志持久化

上述日志都是输出在控制台的,生产环境下需要保存日志,以便出问题时追溯问题,把日志保存下来的过程叫做日志持久化

进行日志持久化,需要在配置文件中指定日志的存储目录或者指定日志保存文件名之后,Spring Boot就会将控制台的日志写到相应目录或文件下

1.设置日志保存路径 

SpringBoot 日志文件  

记得在主配置文件中设置下运行环境

SpringBoot 日志文件

SpringBoot 日志文件

SpringBoot 日志文件 访问hi方法后会进行日志的追加

SpringBoot 日志文件 日志文件一旦产生,文件及其内容就会永久保存,不会出现文件或内容丢失,无论任何操作都会保持以上特性

2.设置日志保存名称

SpringBoot 日志文件

没有设置过路径,会默认保存在项目路径下

SpringBoot 日志文件

路径+名称可以实现在某个路径下保存日志

SpringBoot 日志文件

SpringBoot 日志文件 

日志是中文需要设置字符集为utf8

当日志文件超过10m,就会重新创建一个新的日志文件,所以不用担心文件时间太长积累数据过大

也可以通过配置修改文件存储上限(loggin.logback.rollingpolicy.max-file-size)

生产级别日志分类:

1.程序运行日志,存放在文件中

2.业务日志,存放到数据库

更简单的输出日志-loombok

步骤:

1.添加lombok支持

快速添加springboot的依赖方式:

1.安装插件,重启IDEA

SpringBoot 日志文件

 2.pom.xml中右键Generate

SpringBoot 日志文件

SpringBoot 日志文件

reload一下,添加lombok

2.使用@Slf4j注解输出日志

SpringBoot 日志文件

SpringBoot 日志文件SpringBoot 日志文件

这种方法就省略了我们自己获取日志对象的过程,非常简便!

4.lombok的使用

之前已经介绍和使用了lombok

Lombok能通过注解的方式,在编译时自动为属性生成构造函数、getter/setter、equals、hashcode、toString等方法。奇妙之处在于源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。省去了手动重建这些代码的麻烦,使代码看起来更简洁明了

原理就是在编译时,根据语义生成相应的字节码文件,是一个编译期框架

这么多注解,可以使用一个聚合注解代替:@Data

SpringBoot 日志文件

@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。@Value注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法

@NoArgsConstructor@RequiredArgsConstructor@AllArgsConstructor

三个注解都是用在类上的,第一个和第三个都很好理解,为该类产生无参的构造方法和包含所有参数的构造方法,第二个注解则使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法,当然,成员变量都是非静态的,另外,如果类中含有final修饰的成员变量,是无法使用@NoArgsConstructor注解的

 文章来源地址https://www.toymoban.com/news/detail-439206.html

 

 

到了这里,关于SpringBoot 日志文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springBoot 配置文件 jpa 相关参数的作用

    在Spring Boot应用中,可以通过配置文件来配置JPA(Java Persistence API)相关的参数。下面是一些常用的JPA配置参数及其作用: spring.jpa.database : 指定JPA使用的数据库类型,默认为自动检测。可选值有 HSQL 、 H2 、 DERBY 、 MYSQL 、 POSTGRESQL 、 ORACLE 、 SQLSERVER 等。 spring.jpa.show-sql : 是否

    2024年02月12日
    浏览(41)
  • SpringBoot(项目创建使用+配置文件+日志文件)

    目录 1. Spring Boot 项目创建 2. 写一个 Hello World 并运行 3. 配置文件的作用及格式 4. properties 配置文件的基本语法  5. 读取配置文件 6. yml 配置文件说明 7. properties 和 yml 的区别 8. SpringBoot 日志文件 8.1 日志的作用 8.2 自定义日志打印 8.3 日志的级别 8.4 日志持久化 8.5 更简单的实现

    2024年01月22日
    浏览(54)
  • 一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 Avue 是 基于vue和element-ui的快速开发框架 。它的核心是数据驱动UI的思想,让我们从繁琐的crud开发中解脱出来,它的写法类似easyUI,

    2024年02月12日
    浏览(42)
  • SpringBoot配置文件和日志

    目录 SpringBoot配置文件 SpringBoot配置文件的作用  项目中的重要数据写在配置文件当中 降低代码耦合  SpringBoot配置文件的格式  properties配置文件 读取配置文件中的内容(@Value注解使用${}格式读取) properties优缺点  yml配置文件  yml特点: yml语法  yml对于单双引号的问题  y

    2024年02月05日
    浏览(40)
  • springBoot的日志文件

    目录 一. 自定义日志打印 1. 获取日志对象  2. 使用日志对象打印日志 3. 日志格式说明  二. 日志级别  1. 日志级别的分类和使用 2. 日志级别的设置 三. 日志持久化  四. 更加简单的实现日志打印 五. Lombok的原理 日志是程序的重要组成部分,主要可以用来 定位和排查问题 。除

    2024年02月13日
    浏览(28)
  • SpringBoot日志文件

    除了 发现和定位问题 之外,我们还可以通过日志实现以下功能: 记录用户登录日志,方便分析用户是正常登录还是恶意破解用户 记录系统的操作日志,方便数据恢复和定位操作⼈。 记录程序的执行时间,方便为以后优化程序提供数据支持。 Spring Boot 项目在启动的时候默认

    2024年02月06日
    浏览(26)
  • 6.SpringBoot 日志文件

    大家好,我是晓星航。今天为大家带来的是 SpringBoot 日志文件 相关的讲解!😀 ⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗? 答案是否定的,写程序不是买彩票,不能完全靠猜,因此⽇志对于我们来说,最

    2024年04月26日
    浏览(24)
  • SpringBoot 日志文件

    日志是程序的重要组成部分,最常见的,当程序报错时,打开控制台就能看到报错信息,这些就是日志.通过日志,可以看到错误信息,找到错误原因 除了发现和定位问题,日志还能实现这些实用的功能: 记录用户登录日志,分析用户是正常登录还是恶意破解用户(用来分析用户的行为) 记

    2024年02月03日
    浏览(21)
  • springboot 项目日志配置文件详解

    在Spring Boot项目中,可以通过在 application.properties 或 application.yml 文件中指定日志配置文件来配置日志。 1. 使用 application.properties 文件: 在 application.properties 中,您可以使用以下属性来指定日志配置文件: 上述配置将告诉Spring Boot使用位于类路径下的 custom-logback.xml 文件作为

    2024年02月12日
    浏览(50)
  • 关于 SpringBoot 日志文件的知识

    目录 日志有什么用? 日志怎么用? 自定义日志打印 在程序中得到日志对象 使用日志对象打印日志 日志格式 日志级别的分类与使用 日志级别设置 日志持久化 日志对于我们来说,最主要的用途就是排除和定位问题。 除了发现和定位问题之外,我们还可以通过日志实现以下

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包