日志输出 : SLF4J + LOGBACK

日志输出 : SLF4J + LOGBACK

java.util.logging、Commons Logging、Log4j、Log4j2、SLF4J、LOGBACK 都是JAVA生成日志的方式等,其中区别不做阐述,直接使用效率较高的 SLF4J + LOGBACK 组合来完成今天关于日志生成的复习。

SLF4J:提供统一的接口,使系统即使要将 Log4j 替换成 LOGBACK,也无需改变代码;
LOGBACK:算是Log4j的升级版,是一个日志的实现。

参考资料:https://www.cnblogs.com/gavincoder/p/10091757.html 。

一 配置文件参考



    

    
    

    
    

    
    ${APP_Name}-${bySecond}

    
    
    
        
            %-4relative [%thread] %-5level %logger{35} - %msg %n
        
    

    
    
        testFile.log
        true
        
            %-4relative [%thread] %-5level %logger{35} - %msg%n
        
    

    
    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            utf-8
        
        
        
            ERROR
            ACCEPT
            DENY
        
        
        
        
        
            log/output.log.%d{yyyy-MM-dd}
            30
        
        
        
            1MB
        
        
        
            1MB
        
        
        
            log/output.log.%i
        
    



    
    
        
    

    
    
        
        
    

二 实际使用

将日志文件按照等级输出,记录在不同的文件内,当文件大小达到设置大小,分隔文件并压缩。

  • 1.WebRequest.java
package useSlfLogBack;

import ch.qos.logback.classic.util.ContextInitializer;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;

/**
 * @author r
 * @description 模拟网络请求
 * @date 2020/11/26
 */
public class WebRequest {
    static{
        String p = "E:\\workSpace\\aPerson\\mybaitsTest\\javaTest\\src\\useSlfLogBack\\logback.xml";
        File f = new File(p);
        if(f.exists()){
            System.out.println("f.exists() ...");
        }
        System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, p);
    }

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

    @Test
    public void excute(){
        logger.info("excute");
        UserServer server = new UserServer();
        server.run();
        server.use();
    }
}

  • 2.UserServer.java
package useSlfLogBack;

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

/**
 * @author r
 * @description 服务层
 * @date 2020/11/27
 */
public class UserServer {
    private static final Logger logger = LoggerFactory.getLogger(UserServer.class);
    public void run (){
        logger.debug("logger.debug");
        logger.info("2,xxx");
        logger.debug("logger.info");
        logger.error("2,xxx");
        logger.error("logger.error");
    }

    public void use (){
        new Use().use();
    }
}

  • 3.Use.java
package useSlfLogBack;

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

/**
 * @author r
 * @description 使用测试
 * @date 2020/11/27
 */
public class Use {
    private static final Logger logger = LoggerFactory.getLogger(Use.class);

    public void use (){
        logger.debug("d1,xxx");
        logger.debug("d2,xxx");
        logger.debug("d3,xxx");
        logger.debug("d4,xxx");
        logger.debug("d5,xxx");
        logger.debug("d6,xxx");
        logger.error("e1,xxx");
        logger.error("e2,xxx");
        logger.error("e3,xxx");
        logger.error("e4,xxx");
        logger.error("e5,xxx");
        logger.error("e6,xxx");
        logger.info("i1,xxx");
        logger.info("i2,xxx");
        logger.info("i3,xxx");
        logger.info("i4,xxx");
        logger.info("i5,xxx");
        logger.info("i6,xxx");
    }
}
  • 4 logback.xml



    

    
        
            %-4relative [%thread] %-5level %logger{35} - %msg %n
        
    

    
        ${LOG_HOME}\\testFileUserServe.log
        true
        
            %-4relative [%thread] %-5level %logger{35} - %msg%n
        
    

    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            utf-8
        
        ${LOG_HOME}\\error.log
        
            ERROR
            ACCEPT
            DENY
        
        
            ${LOG_HOME}\\error.log.%i.zip
        
        
            10KB
        
    

    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            utf-8
        
        ${LOG_HOME}\\info.log
        
            INFO
            ACCEPT
            ACCEPT
        
        
            ${LOG_HOME}\\info.log.%i.zip
        
        
            10KB
        
    

    
        
        
    

    
        
        
        
    

你可能感兴趣的:(java,java,logback)