【Spring】_打印Spring日志

目录

1. 打印日志

1.1 方式1:使用System.out.println

1.2 方式2:使用日志对象Logger

1.3 关于日志框架SLF4J

2. 日志级别及其使用

2.1 日志级别

2.2 使用日志级别的方法打印日志信息

3. 使用lombok更简单地打印日志


1. 打印日志

1.1 方式1:使用System.out.println

创建loggerContrller:

package com.example.iocdemo1.Controller;

import jakarta.annotation.PostConstruct;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LoggerController {
    @PostConstruct
    public void print(){
        System.out.println("Print log");
    }
}

启动程序,日志如下: 

注:(1)@Postconstruct注解通常用于标注初始化操作;

(2)java程序启动的进程ID可以通过任务管理器进行查看:

1.2 方式2:使用日志对象Logger

使用日志工厂LoggerFactory获取日志对象Logger,并打印日志,修改LoggerController类:

package com.example.iocdemo1.Controller;

import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LoggerController {
    private static Logger logger= LoggerFactory.getLogger(LoggerController.class);
    @PostConstruct
    public void print(){
        System.out.println("Print log");
        logger.info("logger framework");
    }
}

启动程序,查看日志如下:

注:(1)Logger和LoggerFactory都属于org.slf4j包,请注意导包时的选择:

(2)getLogger方法的参数就是打印日志的类,通常是当前类定义的:

也可以使用双引号引日志对象的名称作为参数,但并不便于定位类,通常不用。

1.3 关于日志框架SLF4J

1、SLF4J是一个日志框架,但SLF4J不是一个真实的日志框架实现,只是一个日志门面。

具体实现是log4j/log4j2/logback;

2、SLF4J是门面模式的典型应用,门面模式又称外观模式,提供了一个统一的接口,用来访问子系统中的一群接口,主要特征是定义了一个高层接口,让子系统更容易使用;

2. 日志级别及其使用

2.1 日志级别

1、FATAL:致命信息,表示需要立即被处理的系统级错误;

2、ERROR:错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行;

3、WARN:警告信息,不影响使用,但需要注意的问题;

4、INFO:普通信息,用于记录应用程序正常运行时的一些信息;

5、DEBUG:调试信息,用于打印调试时的关键信息;

6、TRACE:追踪信息,比DEBUG更细粒度的信息事件(一般不用);

级别越高,收到的信息越少;

2.2 使用日志级别的方法打印日志信息

编写LoggerController内容如下:

package com.example.iocdemo1.Controller;

import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class LoggerController {
    private static Logger logger= LoggerFactory.getLogger(LoggerController.class);
    @PostConstruct
    public void print(){
        logger.error("Error log");
        logger.warn("Warn log");
        logger.info("Info log");
        logger.debug("Debug log");
        logger.trace("Trace log");
    }
}

启动程序查看日志:

注:1、日志对于系统运行信息的反映相对而言是滞后的,FATAL级已无法使用日志打印,故而只提供了其余四种级别的日志输出方法;

2、Spring的默认日志级别为INFO,低于该级别的日志不予打印,故而以上方法仅输出了高于等于INFO等级的ERROR、WARN和INFO等级的日志;

3. 使用lombok更简单地打印日志

在当前打印日志的方法中,在打印日志的类中需创建一个logger对象,这使得打印日志时每次都需对一个类new 一个对象,较为麻烦。lombok提供了更简单的方式:@Slf4j注解。

关于lombok及其导入,详见下文:

Java工具包——Lombok_lombok maven-优快云博客文章浏览阅读3.2k次,点赞31次,收藏24次。在Spring项目中创建java对象,如果使用手动生成getter、setter、toString等方法提供调用接口,会导致代码修改成本与复杂度大大增加;lombok是一个Java工具库,通过的方式简化了Java的开发;接下来简单介绍lombok的使用方法;_lombok mavenhttps://blog.youkuaiyun.com/m0_63299495/article/details/139988632在需要打印日志的类前增加@Slf4j注解,使用该注解后,就可以使用自动生成的日志对象log进行日志的打印:
LoggerController内容如下:

package com.example.iocdemo1.Controller;

import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class LoggerController {

    @PostConstruct
    public void print(){
        log.error("Error log");
        log.warn("Warn log");
        log.info("Info log");
        log.debug("Debug log");
        log.trace("Trace log");
    }
}

重启程序,观察日志如下:(正确打印)

注:查看@Slf4j注解声明:

在Target目录下查看对应的.class文件:LoggerController.class

可见在编译时@Slf4j就会被处理,创建为一个Logger类创建的对象log;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值