spring boot logback配置解析

记录下来,以后备用。。

主要是实现了

1.日志的info 和error 日志分类 存放 

2.每日生成日志

3.相关参数解析

小知识:

日志等级

 

debug 级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;

info  重要,输出信息:用来反馈系统的当前状态给最终用户的;

warn, 可修复,系统可继续运行下去;

Error, 可修复性,但无法确定系统会正常的工作下去;

从低到高

debug-》info-》warn-》Error

----------------------------------------------------------------------------------------------------------------------------------

demo项目生成是在 http://start.spring.io/ 中 

pom.xml 



	4.0.0

	com.example
	demo
	0.0.1-SNAPSHOT
	jar

	demo
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		2.0.2.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			junit
			junit
			4.12
			test
		
		
			org.projectlombok
			lombok
			1.16.2
		

		
		
		
			org.slf4j
			slf4j-api
			1.7.25
		
		
		
			org.slf4j
			slf4j-log4j12
			1.7.25
			
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	



 

logback主要是使用了 @Slf4j 

这个注释代替了

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

而且 @Slf4j 有内置log对象

 

idea 使用该注释时 可能会出现log对象不存在 

对应的解决方案在 https://blog.csdn.net/return_true_hang/article/details/79325195 这篇博客中有解决方案

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class DemoApplicationTests {

	@Test
	public void contextLoads() {

		String name = "TestName";
		String passWord = "TestPassword";

		log.debug("debug....");
		log.info("name: {} ,password : {}",name, passWord);
		log.error("error....");
	}

}

{}是占位符 一个占位符对应一个参数。。。

logback 配置分为yml 和xml 两种形式 

yml 是简单配置,能够配置较为简单的属性

这里我们使用xml的形式




    
        
            
             %d - %msg%n
            
        
    

    
    
        ERROR
        DENY
        ACCEPT
    
    
        
            %d - %msg%n
        
    
    
    
        
        /var/log/tomcat/sell/info.%d.log
    


    
        
            ERROR
        
        
            
                %d - %msg%n
            
        
        
        
            
            /var/log/tomcat/sell/error.%d.log
        
    

    
        
        
        
    

上面的xml配置 实现了

 

1.日志的info 和error 日志分类 存放 

2.每日生成日志

有两个属性 name 和class ,一个完整的 称为 一个规则

name 是指该 appender(规则) 的名字  class 是指定用什么类去实现该appender (规则)(没有查资料,自身理解。。如有错误还望指出)

  这是一个展示的标签, class 属性是指定 用什么类实现 我们这里使用 

ch.qos.logback.classic.PatternLayout

这句话的意思采用什么格式化

%d 是输出日期

%msg 是输出消息

%n 是换行

 


   %d - %msg%n

这个是配置拦截器 指定了levelFilter 这个拦截器 主要是拦截日志等级

 


        ERROR
        DENY
        ACCEPT

这个是配置要监控的等级

是命中该等级时做的操作 

是未命中时做的操作

操作分三种 

DENY  禁止 

NEUTRAL  中立

ACCEPT 接受

禁止是 指不执行当前这条规则

中立是指 忽视当前规则 但是会往下查询有没有符合要求的规则

接受是指 执行当前这条规则

-------------------------------------------------------------------------------------------------------------------------

每天一个的滚动策略  ch.qos.logback.core.rolling.TimeBasedRollingPolicy

 


        
        /var/log/tomcat/sell/info.%d.log

根据范围进行过滤 

 


    ERROR

这个filter 的特点是会打印出配置的等级以及向上的日志

例如:

配置为 info时 则会打印出 info,warn,error 这三个等级的日志 

这个是适用范围 就是把上面配置的规则 应用上去 ref 使用的值是 name的值

 


        
        
        
 

 

常见错误:

1.标签名在idea中的提醒并不算友好,要注意不要打错

2.要记得在标签中应用上去

 

demo文件地址:https://gitee.com/minstrel01/logback

 

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