Logback应用及自定义节点


  说明:Logback是由log4j创始人设计的另一个开源日志组件,拥有更优越的性能,Springboot默认的集成日志,它有一个核心模块logback-core和两个基本模块logback-classic、logback-access更多可以上官方网站:http://logback.qos.ch了解一下,这些暂不是我们的重点。
  本节的主要介绍:1、了解logback.xml的常用配置 2、自定义自己的日志输出节点 3、了解常用的属性(可参考配置中注释)。


1、工程描述


  说明:日志测试比较简单,引入一个logback.xml文件,如果logback.xml位置比较特殊可以在application.propertis中指定引入,另外一个对外测试接口Log.java。


2、代码步骤


  第一:定义logback.xml(太长,只显示error节点和自定义的节点),我在error节点中写了很详细的注释,感觉这样比拿出来说明更易理解 。


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

	
	
		logs/test-error-today.log
		
		
			
			logs/test-error/test-error-%d{yyyy-MM-dd}.%i.log.gz
			
			
			30
			
			
				100MB
			
		
		
		
			%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] 
				%-5level%logger{35} - %msg%n
		
		
		
		
			ERROR
			
			ACCEPT
			
			DENY
		
	
	
	
	
	
		logs/test-collect-today.log
		
			${log.path}/collect.%d{yyyy-MM-dd}.%i.log
			
			
				5kb
			
		
		
			 %msg%n
		
		
			INFO
			ACCEPT
			DENY
		
	
	
	
		0
		1024
		
	
	
	
		
	

	
	
		
		
		
		
	


第二:application.properties中引入logback.xml,初始级别为INFO,默认级别为DEBUG。

logging.config: file:./logback.xml
logging.level.JaninoLogger: INFO

第三:对外提供的接口代码。

@RestController
public class Log {
	Logger logger = LoggerFactory.getLogger("logCollect");
	Logger log = LoggerFactory.getLogger(this.getClass());
	@RequestMapping("/log")
	public String logTest1() {
		for (int i = 0; i < 10000; i++) {
			logger.info("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
		}
		return "hello log";
	}
	@RequestMapping("/log1")
	public String logTest2() {
		for (int i = 0; i < 10000; i++) {
			log.info("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
			log.warn("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
			log.error("参数{},参数{},参数{},参数{},参数{},参数{},参数{}", i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6);
		}
		return "hello log1";
	}
}

3、自定义节点解析


  在logback.xml中logCollect为自定义节点,大多数属性说明可以参考上面error节点注释,这里几个上面没有出现的说明一下。
 property:定义属性变量,可以在下面直接引用 ;
 pattern:%msg%n表示只输出内容CVS格式内容,不定义头,方便解析 ;
 filter:只定义了INFO级别,说明logCollect节点只能用到INFO上;
 additivity=“false”:表示不从root根上继承,只输出自定义的INFO级别,否则会被输出两次 ;


4、测试说明


Logback应用及自定义节点_第1张图片
  可以看出图中自定义的日志进行了切分,而且输出内容只是简单的逗号分隔,cvs可以直接打开,其它日志可以自行运行代码打开查看(会有定义的头信息)。


5、打包下载


链接:https://pan.baidu.com/s/1Yr8pXlkpqzkzqioMj7onSg 
提取码:upl3 

若链接莫名失效,可以留言联系,也可以按照上述的方式自行配置。
【更多可关注】Logback应用及自定义节点_第2张图片

你可能感兴趣的:(java)