sringboot logj2日志记录实现

本文详细介绍了如何在SpringBoot项目中使用log4j2管理异常级别,包括配置默认日志级别、自定义异常输出类以及通过application.yml进行配置,同时展示了如何将日志保存到本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.原理解释

先来了解一下 log4j2中定义的异常级别,从低到高依次是:

ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF

ALL:最低级别,用于打开所有日志记录

Trace:追踪进程,推进程序使用

Debug:颗粒度信息事件,调试程序使用 可以使用Debug 单步运行的级别

info:粗颗粒度事件,突出强调应用运行使用  也是springboot运行 默认输出异常级别

Warn:警告级别,警告可能会出错的数据信息

Error:异常级别,影响程序运行的信息

Fatal:错误级别,会导致程序退出运行的信息

OFF:最高级别,用于关闭所有日志记录

2.项目结构

        1.在application.yml或application.properties文件中,定义日志输出级别。这里我采用的是yml配置,注意格式顶格写。我们这里先写logging默认日志级别info

#设置日志输出级别
#com:
#  tjetc:info 表示 设置info日志级别 level:表示只对com.tjetc包下类的作用
logging:
  level:
    com:
      tjetc: info

        2. 异常输出类MyTest,用于输出异常信息

@SpringBootTest
//生成类对应的logger对象
@Slf4j
//注解调用Slf4j
public class MyTest {
    
}

 3.实现步骤

在测试类中,建立一个异常输出方法,用于打印异常信息,并将日志保存到本地当中

    @Test
    public void test01(){
        Logger logger = LoggerFactory.getLogger(MyTest.class);
        logger.trace("我是 trace");
        logger.debug("我是 debug");
        logger.info("我是 info");
        logger.warn("我是 warn");
        logger.error("我是 error");
    }

 这里LoggerFactory.getLogger方法获取了MyTest.class类,并监视这个类中发生的异常

注意:这个类中LoggerFactory要选择slfj

观察结果:日志输出结果有默认info、warn、error三个异常级别,到这里,我们就能看出默认日志输出的类型为info以上的异常级别。

 接下来,我们尝试修改springboot默认日志输出异常级别,并将其记录在本地。

首先,我们将application.yml中tjetc的类型,修改为debug,这样我们的日志输出就会在debug这一级别。

然后,我们添加file:path:指定生成文件路径,这样就会在对应路径下生成spring.log日志文件。还有一种方法file:name:可以指定文件生成路径和文件名称。这里我指定spring.log生成在D:temp目录下。

注:这两种方法只能选择一种,yml有严格的缩进要求,书写时注意格式对齐。

#设置日志输出级别
#com:
#  tjetc:debug 表示 设置debug日志级别 level:表示只对com.tjetc包下类的作用
logging:
  level:
    com:
      tjetc: debug

#配置日志输出文件位置和名称
  file:
#    指定日志文件路径,没有名称,在指定路径下生成spring.log文件
    path: D:temp
#    指定生成文件路径和生成文件名称
#    name: aa/bb/myTestLog.txt

 其次,我们修改Test输出异常类中日志中log对象的生成方式,尝试用一种更简易的方法监控.class类。log是由@Slf4j注解生成的,自动将目标.class注入的方法。

    @Test
    public void test02(){
//        logger 对象  日志信息
//        Logger logger= LoggerFactory.getLogger(MyTest.class);

//        log是由@SLf4j生成的
        log.trace("我是trace");
        log.debug("我是debug");
//        默认输出 info以上的错误级别
        log.info("我是info");
        log.warn("我是warn");
        log.error("我是error");
    }

观察结果:我们修改了yml默认日志输出类型,并保存到本地文件当中。

 

总结: 

本文讲述两种log的方式实现监控目标类日志异常,并通过在application.yml配置logging:来实现控制日志级别并通过配置file:将日志信息保存到本地。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老大哥注释着你

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

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

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

打赏作者

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

抵扣说明:

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

余额充值