欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > Java EE 进阶:Spring Boot 日志

Java EE 进阶:Spring Boot 日志

2025/3/14 7:58:44 来源:https://blog.csdn.net/blamep/article/details/146232179  浏览:    关键词:Java EE 进阶:Spring Boot 日志

什么是日志?

日志就是在程序运行的时候记录运行过程中的各种信息,比如系统的运行状态,用户操作,错误信息,调试数据等,就跟你写日记一样,记录各种数据。

日志的使用

常见的日志

Spring Boot在创建时就会记录各种的数据

在以前我们的学习中,我们可以通过sout来打印日志

System.out.println("sout打印日志");

我们可以发现,我们写的日志,比Spring Boot生成的日志少了很多的信息。

打印日志 

我们可以通过如下代码来打印日志

private final static Logger logger= LoggerFactory.getLogger(LogController.class);

注:logger是属于slf4j包中,切记不要导错包

 

通过对象来打印日志

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/log")
@RestController
public class LogController {private final static Logger logger= L@RequestMapping("/print")public void print(){System.out.println("sout打印日志");logger.debug("debug 打印日志");logger.info("info 打印日志");logger.trace("trace 打印日志");logger.error("error 打印日志");logger.warn("warn 打印日志");}
}

 

但是我们发现我们打印了六种日志,但实际出来的只有三种

这与⽇志级别的配置有关, ⽇志的输出级别默认是info级别,所以只会打印⼤于等于此级别的⽇志,也就 是info, warn和error

 

 门面模式

slf4j是典型的门面模式

 

门面模式的定义:

提供了一个统一接口,用来访问子系统中的一群接口

 

门面模式的实现: 

public interface Light {void open();void close();
}public class LivingRoomLight implements Light{@Overridepublic void open() {System.out.println("打开客厅灯");}@Overridepublic void close() {System.out.println("关闭客厅灯");}
}public class BedRoomLight implements Light{@Overridepublic void open() {System.out.println("打开卧室灯");}@Overridepublic void close() {System.out.println("关闭卧室灯");}
}public class BathRoomLight implements Light{@Overridepublic void open() {System.out.println("打开浴室灯");}@Overridepublic void close() {System.out.println("关闭浴室灯");}
}public class FacadeClient {private BathRoomLight bathRoomLight=new BathRoomLight();private BedRoomLight bedRoomLight=new BedRoomLight();private LivingRoomLight livingRoomLight=new LivingRoomLight();public void open() {bathRoomLight.open();bedRoomLight.open();livingRoomLight.open();}public void close() {bathRoomLight.close();bedRoomLight.close();livingRoomLight.close();}
}public class Main {public static void main(String[] args) {FacadeClient facadeClient=new FacadeClient();facadeClient.open();facadeClient.close();}
}

⻔⾯模式的优点:

减少了依赖性,提高灵活性,提高了安全性,灵活的设定权限的访问,不在门面对象中开通方法,就无法访问。

日志格式的说明

 

日志级别的分类

⽇志的级别从⾼到低依次为:FATAL、ERROR、WARN、INFO、DEBUG、TRACE

FATAL:致命信息,表⽰需要⽴即被处理的系统级错误

ERROR:错误信息,级别较⾼的错误⽇志信息,但仍然不影响系统的继续运⾏

WARN:警告信息,不影响使⽤,但需要注意的问题

INFO:普通信息,⽤于记录应⽤程序正常运⾏时的⼀些信息,例如系统启动完成、请求处理完成等

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

TRACE:追踪信息,⽐DEBUG更细粒度的信息事件(除⾮有特殊⽤意,否则请使⽤DEBUG级别替代)

日志的配置

在配置文件中设置"logging.level"配置项 

配置日志的默认级别

logging:level:root: debug

 

配置⽇志⽂件的路径和⽂件名: 

logging:file:name: logger/springboot.log

 

 

配置日志文件的分割 

Logging  logback:rollingpolicy:file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%imax-file-size: 1KB

 

日志格式的配置:

参考:Chapter 6: Layouts 

更加简单的日志打印

@slf4j注解

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RequestMapping("/log2")
@RestController
@Slf4j
public class LogController2 {@RequestMapping("/print2")public void print2(){System.out.println("sout打印日志");log.debug("debug 打印日志");log.info("info 打印日志");log.trace("trace 打印日志");log.error("error 打印日志");log.warn("warn 打印日志");}
}

注:记得添加lombok依赖

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version> <!-- 建议使用较新的版本 --><scope>provided</scope>
</dependency>

希望能对大家有所帮助!!!! 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词