springboot如何自动生成代码 (springboot怎么自己写starter)

springboot如何实现动态部署,springboot怎么进行数据存储

在Spring Boot中默认提供了Logback作为日志记录框架,但同时SpringBoot中支持了其他日志框架,例如JCL(Jakarta Commons Logging)、SLF4J(Simple Logging Facade for Java)、jboss-logging、jUL(java.util.logging)等。下面就来分析下下Spring Boot中如何使用Logback日志框架和Log4j日志框架。

Logback日志框架

Logback日志框架,作为Log4j的改进版本,具有比Log4j更好的性能和更多的特性。所以在Spring Boot中将Logback作为了默认的日志框架。

在SpringBoot中,可以通过properties配置文件来对Logback进行相关的配置,例如对日志的级别,Appender、输出格式等等内容。除此之外,Spring Boot还提供了相关的API,方便开发者可以快速的动态进行日志的调整。

springboot如何实现动态部署,springboot怎么进行数据存储

Log4j日志框架

Log4j是Apache开源的日志框架,提供了非常强大的日志记录功能,虽然目前Log4j已经停止了维护,但是在很多大厂,在很多的大型项目中还是会用到Log4j。

与Logback相比,Log4j的相关配置可能更为复杂,需要通过log4j.xml的配置文件进行配置,并且如果要使用到其他的相关组件配置就相对更加麻烦了。所以在一般的开发中SpringBoot中的Logback日志框架一般没有人会去改变,除非是一些用习惯了的开发者。

那么在Spring Boot中到底如何使用这两种框架呢?

SpringBoot自定义日志实现

添加日志依赖

<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-log4j2</artifactId>  
</dependency>

创建自定义日志记录器

在类中,使用 SLF4J API 或 Log4j2 API 来创建日志记录器。

SLF4J API

import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
  
public class MyService {  
    private static final Logger logger = 
      LoggerFactory.getLogger(MyService.class);  
  
    public void myMethod() {  
        logger.info("This is an info message");  
        logger.error("This is an error message", 
                     new Exception("Error details"));  
    }  
}

Log4j API

import org.apache.logging.log4j.LogManager;  
import org.apache.logging.log4j.Logger;  
  
public class MyService {  
    private static final Logger logger = 
      LogManager.getLogger(MyService.class);  
  
    public void myMethod() {  
        logger.info("This is an info message");  
        logger.error("This is an error message", 
                     new Exception("Error details"));  
    }  
}

如何自定义日志配置

如果在src/main/resource目录中下添加logback.xml的配置文件,或者是logback-spring.xml的配置文件,如下所示。

<?xml version="1.0" encoding="UTF-8"?>  
<configuration>  
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>  
        </encoder>  
    </appender>  
  
    <root level="info">  
        <appender-ref ref="STDOUT" />  
    </root>  
  
    <logger name="com.example.myapp" level="debug" additivity="false">  
        <appender-ref ref="STDOUT" />  
    </logger>  
</configuration>

在代码中分别对appender、logger、root logger等配置进行了配置。如果使用的是log42.xml也是一样的配置。

如何引入自定义的配置?

如果使用的是logback或者是log4j2。那么默认就是logback-spring.xml或者是log4j2.xml的配置文件,Spring Boot在启动的时候会默认加载这个配置文件,按照这个配置文件中的内容进行日志的配置。但是如果用了其他的配置,或者是指定的位置不在默认的路径下。这种情况下就需要在配置文件中进行配置了。如下所示。

logging.config=classpath:logback-custom.xml

总结

通过以上配置和代码示例,你可以更好地管理和优化 Spring Boot 应用程序中的日志记录,以满足不同的需求。记得根据实际情况调整日志级别、格式和策略,以确保日志的可用性和性能。