当前位置:首页 > 生活 > 正文

Spring Boot 入门日志管理(springboot日志yml)

在软件开发过程中,日志记录是非常重要的,主要有以下几个原因:

排错:当程序出现问题时,日志可以记录下错误信息、异常堆栈等重要信息,方便程序员进行排错,提高程序的可靠性。

统计分析:通过分析程序日志,可以了解程序的使用情况,统计访问量、异常数量等重要指标,为业务决策提供依据。

运维监控:通过实时监控程序日志,可以及时发现系统故障,快速解决问题,保证系统稳定性。

安全审计:日志记录可以记录用户访问行为、操作记录等,有助于对系统安全进行审计,发现异常行为,及时采取措施。

因此,记录日志是非常重要的,对于任何一个应用程序来说都是必不可少的。在Spring Boot中,通过集成各种日志框架,可以方便地进行日志记录,提高程序的可靠性、稳定性和安全性。

Spring Boot的日志框架支持多种不同的输出方式,例如控制台输出、文件输出、网络输出等。可以通过在application.properties或application.yml文件中配置日志输出方式和级别。以下是一些常用的配置属性:

logging.config: 用于指定配置文件名称(当日志的配置项太多时,可以使用配置文件来配置日志)

logging.file.name: 日志文件名

logging.level.:用于设置不同包下的日志级别。例如,logging.level.root=INFO表示设置根包下的日志级别为INFO。

logging.level.[logger name]: 指定某个日志记录器的输出级别,例如“logging.level.org.springframework.web: DEBUG”

logging.file.path:用于设置日志文件输出的目录。例如,logging.file.path=/var/log/app表示将日志文件输出到/var/log/app目录下。

logging.pattern.console:用于设置控制台日志输出格式。例如,logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n表示输出的日志格式包括时间戳、线程信息、日志级别、Logger名称和日志内容等。

logging.pattern.file:用于设置日志文件输出格式。例如,logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n表示输出的日志格式与控制台输出格式相同。

logging.file.max-size:用于设置日志文件的最大大小。例如,logging.file.max-size=10MB表示日志文件最大为10MB,超过该大小将自动进行备份。

logging.file.max-history:用于设置日志文件备份的最大天数。例如,logging.file.max-history=7表示最多备份7天的日志文件。

注意:如果没有配置日志文件的名称日志只在控制台上输出

日志使用

配置文件

spring:application:name: spring-bootlogging:#  方便Spring Boot Admin页面上实时查看日志file:name: ${spring.application.name}.loglevel:com.example: ERRORroot: ERRORorg.springframework: ERROR

以上配置了日志文件名称为:spring-boot.log,com.example和org.springframework及根包的日志级别都为ERROR

程序中使用日志

    private static final Logger log = LoggerFactory.getLogger(TestController.class);@GetMapping(/hello)public String hello() {log.error(测试日志,{},spring boot);log.info(测试日志,{},spring boot);return String.format(第一个spring boot 应用);}

@Slf4j日志注解

@Slf4j是Lombok提供的一种简化日志使用的注解,在使用@Slf4j注解的类中可以直接使用log对象进行日志输出,不需要使用LoggerFactory.getLogger获取Logger对象。例如

@Slf4j@Controller@RequestMapping(Test)public class TestController {//    private static final Logger log = LoggerFactory.getLogger(TestController.class);@GetMapping(/hello)public String hello() {log.error(测试日志,{},spring boot);log.info(测试日志,{},spring boot);return String.format(第一个spring boot 应用);}