SpringBoot详细讲解日志文件

目录
  • 1 日志的功能是什么?
  • 2 如何自定义日志打印
    • 2.1 在程序中获取日志对象
    • 2.2 调用日志对象打印日志
    • 2.3 查看日志打印的结果
  • 3 日志的级别
    • 3.1 日志级别的分类
    • 3.2 日志级别的设置
  • 4 日志持久化
  • 5 更简单的日志输出
    • 5.1 添加 lombok 依赖
    • 5.2 输出日志
    • 5.3 lombok 更多的注解

1 日志的功能是什么?

如果程序报错了, 却不能从控制台查看日志, 那么就不知道错误的原因了.

日志的功能 :

  • 快速的排查和定位问题
  • 记录用户登录的日志
  • 记录系统的操作日志
  • 记录程序的执行时间

2 如何自定义日志打印

自定义日志的打印步骤 :

第一步: 在程序当中获取日志对象

第二步: 调用日志对象的打印方法, 将信息打印出来

2.1 在程序中获取日志对象

获取日志对象需要使用日志工厂 LoggerFactory

这里的 Logger 对象属于 org.slf4j 包下.

    // 1. 得到日志对象
    private static final Logger logger = LoggerFactory.getLogger(UserController.class);

SpringBoot中内置了 日志框架slf4j, 可以直接在程序中调用slf4j来输出日志

2.2 调用日志对象打印日志

日志对象的打印方法有很多, 目前展示这一个

        // 2. 使用日志对象打印日志
        logger.info("日志级别:info");

2.3 查看日志打印的结果

3 日志的级别

有了日志的级别, 开发者就可以设置日志级别, 从而得到对自己有用的日志信息, 大大节省了分类的成本.

3.1 日志级别的分类

日志的级别分为:

  • trace :普通微量的日志信息
  • debug : 调式的时候的日志信息
  • info : 普通的日志信息 (默认日志级别)
  • warn : 警告的日志信息
  • error : 错误的日志信息
  • fatal : 致命错误,最高日志级别

日志级别的顺序 :

3.2 日志级别的设置

在配置文件中配置日志级别

.properties 中的格式

logging.level.root=error

.yml 中的格式

logging:
  level:
    root: info

输出

如果设置的是info级别.那么级别低于info的就不输出了.

日志输出级别, 默认是info

4 日志持久化

上面演示的日志, 都是输出在控制台的, 如果在生产环境下, 想要保存这些日志, 方便日后查看日志. 这里的把日志保存下来, 就叫做持久化

注意: 默认情况下SpringBoot会有一个最大的日志大小限制, 如果日志的文件大于默认的最大日志大小, 那么SpringBoot会重新

配置日志文件的保存路径

logging:
  file:
    path: D:/logs

配置日志文件的文件名

logging:
  file:
    name: D:/logs/spring.log

运行后查看文件

5 更简单的日志输出

如何在SpringBoot中快速添加依赖?

下载插件 EditStarters

5.1 添加 lombok 依赖

pom.xml 里右击 选则 Generate

记得刷新以下maven

5.2 输出日志

首先添加 @Slf4j 注解

使用log对象打印日志, 例如 log.error()

@Controller
@Slf4j
public class UsersController {
    @RequestMapping("/log")
    @ResponseBody
    public String printLog() {
        log.error("error");
        return "Log";
    }
}

5.3 lombok 更多的注解

普通注解

注解 作用
@Getter ⾃动添加 getter ⽅法
@Setter ⾃动添加 setter ⽅法
@ToString ⾃动添加 toString ⽅法
@EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法
@NoArgsConstructor ⾃动添加⽆参构造⽅法
@AllArgsConstructor ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序
@NonNull 属性不能为 null
@RequiredArgsConstructor ⾃动添加必需属性的构造⽅法,final + @NonNull 的属性为必需

组合注解

注解 作用
@Data @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor

日志注解

注解 作用
@Slf4j 添加⼀个名为 log 的⽇志,使⽤ slf4

到此这篇关于SpringBoot详细讲解日志文件的文章就介绍到这了,更多相关SpringBoot日志文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot项目保存本地系统日志文件的实现方法

    背景:我们都知道springboot默认日志是打印在控制台中的,不会以文件的形式进行保存.那么日后系统上线肯定是有需要对日志进行定位分析问题的,那么如何实现将控制台输出的日志保存起来? 话不多说,实际效果如下,如果是你预期的那样,咱们接着往下看. 如果最后觉得有所帮助,请不要吝啬你的赞,直接pia的点亮就完事了啦,可好: 如下是集成,按步骤来: 1.在项目的resources目录下创建一个名为logback-spring.xml的日志配置文件,配置文件名最好跟我一样: 2.编写xml文件内容:

  • SpringBoot中通过AOP整合日志文件的实现

    目录 1.导入相关的依赖 2.log4j2 日志文件 3.dao层的接口以及实现类 4.Service层业务实现类 5.Controller层接口控制类 6.编写业务类增强类,加入一个日志文件记录 7.运行测试,查看结果 1.导入相关的依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter&

  • 使用SpringBoot_jar方式启动并配置日志文件

    目录 SpringBoot_jar方式启动并配置日志文件 前言 1.测试环境和生产环境启动 2.利用shell启动并配置log日志 2.1.测试库启动 2.2.正式库启动 2.3.停止正在运行的项目 2.4.重启项目 Jar包后台启动并输出日志 例如 SpringBoot_jar方式启动并配置日志文件 前言 正常启动 ,下面会选择application.properties 中配置默认的启动文件进行启动,下面这种情况不能根据实际情况进行启动项目 java jar admin-1.0-SNAPSH

  • SpringBoot深入了解日志的使用

    目录 1. 日志的作用 2. 日志怎么用 3. 自定义日志打印 3.1 得到日志对象 3.2 使用日志对象提供的方法打印日志 3.3 日志格式说明 4. 日志级别 4.1 日志级别分类 4.2 日志级别的配置 5. 日志持久化 6. 更简单的实现自定义日志的打印 6.1 准备工作,添加 lombok 到项目中 6.2 使用 @Slf4j 得到日志对象 6.3 使用 log 对象自定义打印日志 6.4 lombok 更多注解说明 1. 日志的作用 日志是程序的重要组成部分,在程序报错的时候,如果我

  • Springboot之日志、配置文件、接口数据如何脱敏

    目录 一.前言 二.配置文件如何脱敏? 1. 添加依赖 2. 配置秘钥 3. 生成加密后的数据 4. 将加密后的密文写入配置 5. 总结 三.接口返回数据如何脱敏? 1. 自定义一个Jackson注解 2. 定制脱敏策略 3. 定制JSON序列化实现 4. 定义Person类,对其数据脱敏 5. 模拟接口测试 6. 总结 四.日志文件如何数据脱敏? 1. 添加log4j2日志依赖 2. 在/resource目录下新建log4j2.xml配置 3. 自定义PatternLayout实现数据脱敏 4

  • springboot+log4j.yml配置日志文件的方法

    一,Maven 依赖 pom.xml配置 1, 去掉默认日志,以便切换到log4j2的日志依赖 2, 然后添加如下两个日志依赖 二,在工程根目录下添加 lo4g2.yml 配置文件 2, 配置文件内容 <!-- 配置 log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artif

  • 解决springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题

    application.properties 加入以下配置 #logback home logging.path=D:/logs/esb-producer logback.xml <property name="LOG_PATH" value="${LOG_PATH:- }" /> <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.Rolling

  • SpringBoot详细讲解日志文件

    目录 1 日志的功能是什么? 2 如何自定义日志打印 2.1 在程序中获取日志对象 2.2 调用日志对象打印日志 2.3 查看日志打印的结果 3 日志的级别 3.1 日志级别的分类 3.2 日志级别的设置 4 日志持久化 5 更简单的日志输出 5.1 添加 lombok 依赖 5.2 输出日志 5.3 lombok 更多的注解 1 日志的功能是什么? 如果程序报错了, 却不能从控制台查看日志, 那么就不知道错误的原因了. 日志的功能 : 快速的排查和定位问题 记录用户登录的日志 记录系统的操作日

  • SpringBoot详细讲解通过自定义classloader加密保护class文件

    目录 背景 maven插件加密 注意事项 自定义classloader 隐藏classloader 被保护class手动加壳 总结 背景 最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密再通过自定义的classloder进行解密加载,此方案并不是绝对安全,只是加大反编译的困难程度,防君子不防小人,整体加密保护流程图如下图所示 maven插件加密 使用自

  • springBoot详细讲解使用mybaties案例

    首先创建springBoot项目,jdk选择1.8 然后倒入mybaties的相关依赖 我们用的springBoot,当然spring全家桶里面含有mybaties,所以我们直接使用升级版的mybaties-plus. 引入这3个 lombok省的我每次创建对象,都需要get.set方法,以及toString (IDEA里面也要安装lombok插件->file->setting->plugin->搜索lombok安装,完后重启idea,这样lombok在idea中不报错) myba

  • SpringBoot详细讲解多个配置文件的配置流程

    目录 配置文件加载顺序 验证 前期准备 验证配置文件加载顺序 验证属性互补 总结 一般情况下,springboot默认会在resource目录下生成一个配置文件(application.properties或application.yaml),但其实springboot允许配置多个配置文件(application.properties或application.yaml),但是这并不意味着这些配置文件一定会替换默认生成的配置文件,它们是互补的存在.如果在某些场景下需要把配置文件单独拿出来并且启动的

  • SpringBoot详细讲解如何创建及刷新Spring容器bean

    目录 一.前期准备 1.1 创建工程 1.2 创建Controller 二.探究过程 2.1 启动类 2.2 SpringApplication 2.3 ApplicationContextFactory 2.4 SpringApplication 2.5 结论 参考视频:https://www.bilibili.com/video/BV1Bq4y1Q7GZ?p=6 通过视频的学习和自身的理解整理出的笔记. 一.前期准备 1.1 创建工程 创建springboot项目,springboot版本为

  • SpringBoot详细讲解静态资源导入的实现

    目录 SpringBootWeb开发 1. 静态资源导入 webjars 使用自己的静态资源 总结 2.制作特殊的首页 图标转变 Thymeleaf模板引擎 引入Thymeleaf 取值 有无转义 循环 SpringBootWeb开发 回顾一下: springboot帮助我们配置了什么,能不能进行修改,能修改哪些,能否扩展? xxxAutoConfiguration:向容器中自动配置组件 xxxProperties:自动配置类,装配配置文件中自定义的一些内容 开发要解决的问题: 导入静态资源 首

  • Springboot详细讲解循环依赖

    目录 一.循环依赖 二.循环依赖形成条件(使用构造器注入) 三.循环依赖形成条件(@Aysnc注解的bean生成了对象的代理) 四.针对以上问题对Spring如何解决循环依赖进行详细阐述 一.循环依赖 顾名思义多个类中的依赖形成了环路,形成了类似于死锁的情况,导致springboot在启动时无法为我们创建Bean.通俗来说 就是beanA中依赖了beanB,beanB中也依赖了beanA. spring是支持循环依赖的,但是默认只支持单例的循环依赖,如果bean中依赖了原型bean,则需要加上l

  • SpringBoot详细讲解视图整合引擎thymeleaf

    目录 1. 支持的视图技术 2. Thymeleaf 2.1 Thymeleaf语法 2.2 标准表达式 1. 变量表达式 ${…} 2. 选择变量表达式 *{…} 3. 消息表达式 #{…} 4. 链接表达式 @{…} 5. 片段表达式 ~{…} 3. 基本使用 3.1 Thymeleaf模板基本配置 3.2 静态资源的访问 3.3 完成数据的页面展示 1. 创建Spring Boot项目 2. 编写配置文件 3. 创建web控制类 4. 创建模板页面并引入静态资源文件 5.效果测试 1. 支

  • SpringBoot详细讲解异步任务如何获取HttpServletRequest

    目录 原因分析 解决方案 前置条件 pom配置 requrest共享 自定义request过滤器 自定义任务执行器 调用示例 原因分析 @Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null 在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中body/head/urlparam内容出现获取不到的情况,是因为异步任务在未执行完毕的情况下,主线程已经返回,拷贝共享的Request对象数据被清空 Servlet

  • Springboot详细讲解RocketMQ实现顺序消息的发送与消费流程

    目录 一.创建Springboot项目添加rockermq依赖 二.配置rocketmq 三.新建一个controller来做消息发送 四.创建消费端监听消息消费消息 五.启动服务测试顺序消息发送与消费 如何实现顺序消息? 需要程序保证发送和消费的是同一个 Queue rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是順序消费消息的:有時候,我们需要顺序消费一批消息,比如电商系统 订单创建.支付.完成操作,需要順序执行: RocketMQTemplat

随机推荐