你还在用控制台输出?快来学学这款日志框架吧!

文章目录

      • 1、前言
        • 1.1、为什么需要日志框架
        • 1.2、常用日志框架的介绍
      • 2、SpringBoot整合Logback
        • 2.1、配置logback-spring.xml
        • 2.2、常用标签的讲解
        • 2.3、效果图

1、前言

1.1、为什么需要日志框架

  刚开始学Java的时候,想看看某个变量的值时,用的最多恐怕就是System.out.println()了吧。但是慢慢地就发现有这样一个问题?如何查看控制台的历史记录呢,能不能把控制台输出的内容保存起来,当有需要地时候去查询呢?嗯,日志框架就是为了解决这个问题的。它把控制台输出的内容,通过文件的形式保存起来,方便我们有需要的时候去查询。

1.2、常用日志框架的介绍

  常用的日志框架有SLF4j、Logback、Log4j2等等。SLF4j是Java日志的一个抽象类,而像Logback和Log4j2则是实现类。以前用的最多就是Log4j这个框架了,后面又有了升级版的Log4j2。至于现在常用的Logback是Log4j的改良版,也是SpringBoot的starter内置的一个日志框架。所以下面就是用SLF4j+Logback的组合实现日志记录。

2、SpringBoot整合Logback

2.1、配置logback-spring.xml

  SLF4j、Logback的依赖我们不需要手动引入,在spring-boot-starter-web依赖里面已经集成了,直接用就可以了。我们只需要配置logback-spring.xml这个文件,指明输出日志的格式和位置就可以了。
  在resource文件夹下面创建一个logback-spring.xml,在里面添加日志的配置。如果名字不为logback-spring,就要到application.properties文件里手动设置了。
  以下是我的logback-spring.xml配置。



    
    
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %logger{50} - %msg%n
        
    

    
    
        
        
            ERROR
            DENY
            ACCEPT
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        

        
        
            
            ./logs/formal.%d.log
        
    

    
    
        
            ERROR
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        

        
        
            
            ./logs/error.%d.log

            
            1

        
    

    
    
        
        
        
    


  使用Logback输出信息到控制台

@RestController
public class LoginController {
     

    private Logger logger= LoggerFactory.getLogger(getClass());

    @Autowired
    private LoginMapper loginMapper;

    @RequestMapping("/login")
    Object login(HttpServletRequest request){
     
        List<Login> logins=loginMapper.findall();
        logger.error("发生了一个错误");
        return JSON.toJSONString(logins);
    }
}

2.2、常用标签的讲解

  下面讲一下log-spring.xml里面的一些常用标签。
  appender标签:写日志记录的组件
  filter标签:过滤器组件
  onMatch标签:ACCEPT表示匹配这级别以上的,DENY表示不匹配这级别以上的
  onMismatch标签:ACCEPT表示匹配这级别以下的,DENY表示不匹配这级别以下的
  encoder标签:把输出的日志转换成输出流
  pattern标签:指定输出日志的格式
  rollingPolicy标签:设置日志的滚动策略
  fileNamePattern标签:设置日志的输出路径
  root标签:设置日志的输出级别

2.3、效果图

你还在用控制台输出?快来学学这款日志框架吧!_第1张图片
你还在用控制台输出?快来学学这款日志框架吧!_第2张图片
你还在用控制台输出?快来学学这款日志框架吧!_第3张图片

你可能感兴趣的:(sprinboot,Java,logback,java,slf4j,spring,boot,spring)