logback使用实战

前言:

上文我们介绍了log4j的三种使用情况。

本文依旧按照这种方式来介绍下logback的使用。

只不过logback与log4j是有所不同的,logback-classic包本身就引入了slf4j相关包(slf4j-api),而logback-classic包里也包含了slf4j-logback的相关对接实现。所以使用logback-classic包就相当于使用了slf4j

1.logback单独使用

1.1 引入maven依赖

        
            ch.qos.logback
            logback-classic
            1.2.3
        

1.2 配置logback.xml

以下是笔者从网络上找到的一个模板









    
    logback

    
    
    
    
        1
        20
    

    
    
    
    
        
        
            
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    
    
    
        
        ${FILE_PATH}/file.log
        
            
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    
    
    
    
        
        ${FILE_PATH}/rolling.log
        
        
            ${FILE_PATH}/rolling%i.log
            1
            5
        
        
        
            20MB
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    
    
    
    
        
        
            
            ${FILE_PATH}/java_log/test%d{yyyy-MM-dd_HH-mm}.log
            10
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    
    
    
        
            debug
            ACCEPT
            DENY
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    
    
    
        
            info
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{0} -%msg%n
        
    

    
    
        
    

    
    
        
        
    

1.3 类中使用logback

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {
    private static final Logger logger = LoggerFactory.getLogger(LogTest.class);
    public static void main(String[] args) {

        logger.debug("debug msg");
        logger.info("info msg");
        logger.warn("warn msg");
        logger.error("error msg");
    }
}

这里直接使用slf4j提供即可

1.4 验证结果

11:29:22.775 [main] DEBUG LogTest -debug msg
11:29:22.778 [main] INFO  LogTest -info msg
11:29:22.778 [main] WARN  LogTest -warn msg
11:29:22.778 [main] ERROR LogTest -error msg

2.springboot-logback

springboot-starter-web默认使用的log方式就是logback,所以我们直接引入该依赖即可

2.1 引入maven依赖

        
            org.springframework.boot
            spring-boot-starter-parent
            2.6.6
             
        

		
            org.springframework.boot
            spring-boot-starter-web
        

2.2 配置logback.xml

同1.2

2.3 类中使用

笔者这里使用了idea的SpringBoot骨架生成的项目,所以为了启动验证log的使用,直接使用如下来完成:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component
public class Logback_Test implements InitializingBean {
    private static Logger logger = LoggerFactory.getLogger(Logback_Test.class);

    @Override
    public void afterPropertiesSet() throws Exception {
        logger.debug("debug msg");
        logger.info("info msg");
        logger.warn("warn msg");
        logger.error("error msg");
    }
}

2.4 验证结果

启动ApplicationRunner来验证结果

11:21:41.698 [main] DEBUG Logback_Test -debug msg
11:21:41.698 [main] INFO  Logback_Test -info msg
11:21:41.698 [main] WARN  Logback_Test -warn msg
11:21:41.698 [main] ERROR Logback_Test -error msg

结果基本同1.4一致。

总结:

相对于log4j的使用,logback-classic自带slf4j依赖(logback-classic包自身实现了slf4j-logback转换),所以不需要再主动引入slf4j相关jar包。

你可能感兴趣的:(实战系列,maven,java,jar)