SpringBoot集成Slf4J+logback


一、导入Slf4J依赖

因spring-boot-starter中已存在slf4jlogback依赖

所以只需添加lombok依赖(使用@Slf4J注解)


    org.projectlombok
    lombok
    1.18.0

二、编写logback文件

logback启动时会在资源路径下顺序读取 logback.configurationFilelogback.groovylogback-test.xmllogback.xml等配置文件,对日志格式输出路径等信息进行配置,如存在则使用该文件,如不存在则会使用默认配置。也可自定义文件名在yml中的logging.config中进行自定义配置。

<?xml version="1.0" encoding="UTF-8"?>

    
    
    
    
    
    
    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            UTF-8
        
    
    
    
        
            
            ${LOG_HOME}/${PROJECT_NAME}_LOG_%d{yyyy-MM-dd}.log
            
            30
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            utf-8
        
        
        
            10MB
        
        
        
            DEBUG
        
    
    
    
    
    
    
        
        
    

三、使用

在需要日志记录的类上打上@Slf4j注解,使用log进行日志输出。
@Slf4j是lombok提供的注解,相当于private final Logger log = LoggerFactory.getLogger(当前类名.class),如果不使用lombok也可自行通过LoggerFactory生成logger

日志级别

error: 用户程序报错,必须解决的时候使用此级别打印日志。
warn:警告,不会影响程序的运行,但是值得注意。
info: 一般处理业务逻辑的时候使用,就跟 system.err打印一样,用于说明此处是干什么的。
debug: 一般放于程序的某个关键点的地方,用于打印一个变量值或者一个方法返回的信息之类的信息
trace: 一般不会使用,在日志里边也不会打印出来,最低的一个日志级别。

@SpringBootApplication
@EnableScheduling
@Slf4j
public class RunnerTestApplication {
    public static void main(String[] args) {
        SpringApplication.run(RunnerTestApplication.class, args);
        log.info("----------SpringBoot启动------------");
    }

    @Scheduled(fixedRate = 1000)
    public static void cron(){
        log.info("--------------scheduling-"+new Date()+"------------");
    }
}

在用户logback中配置的日志输出路径中可找到对应的输出日志

用户可在logback中配置输出级别,筛选需要输出到文件中的信息

相关