Java Logback教程

今天仔细配置了一下Logback,之前都是直接从网上找一下,今天仔细研究了一下。首先简单配置如下:



  
	
	
	

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

	
	
		
			
			${logPath}/${logName}.%d{yyyy-MM-dd}.%i.log
			
			
			180
			500MB
			
			true
		
		
			
			%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n
		
	

	

	
	
		
			
			${logPath}/${logName}.%d{yyyy-MM-dd}.%i.html
			
			
			180
			500MB
			
			true
		
		
			
				%p%d%msg%M%F{32}%L
			
		
	
	

	
	
	
	
	


	
	
		
		
		
	


然后日志级别的区分如下:

在这里插入图片描述

fileNamePattern 值及其作用说明

fileNamePattern 展期时间表
/wombat/foo.%d 每日滚动(在午夜)。由于省略了%d令牌说明符的可选时间和日期模式,因此采用了默认模式yyyy-MM-dd,它对应于每日滚动。 未设置文件属性:在2006年11月23日,日志记录输出将进入文件 /wombat/foo.2006-11-23。在午夜以及24日的其余时间,日志记录输出将定向到 /wombat/foo.2006-11-24。文件属性设置为 /wombat/foo.txt:在2006年11月23日,日志输出将转到文件/wombat/foo.txt。在午夜,foo.txt将重命名为 /wombat/foo.2006-11-23。将创建一个新的 /wombat/foo.txt文件,并在11月24日的其余时间将日志输出定向到 foo.txt。
/wombat/%d{yyyy/MM}/foo.txt 在每个月初进行过渡。 未设置文件属性:在2006年10月,日志记录输出将进入 /wombat/2006/10/foo.txt。在10月31日午夜之后和11月下旬,日志记录输出将定向到/wombat/2006/11/foo.txt。文件属性设置为 /wombat/foo.txt:活动日志文件将始终为 /wombat/foo.txt。在2006年10月,日志记录输出将转到/wombat/foo.txt。在10月31日午夜,/ wombat/foo.txt将重命名为/wombat/2006/10/foo.txt。将创建一个新的 /wombat/foo.txt文件,该日志文件将在11月下旬输出。在11月30日午夜,/ wombat / foo.txt将重命名为 /wombat/2006/11/foo.txt,依此类推。
/wombat/foo.%d{yyyy-ww}.log 在每周的第一天进行过渡。请注意,一周的第一天取决于语言环境。 与以前的情况类似,不同的是,过渡将在每个新的星期开始时进行。
/wombat/foo%d{yyyy-MM-dd_HH}.log 每小时顶部滚动一次。 与以前的情况类似,除了过渡将在每小时的顶部进行。
/wombat/foo%d{yyyy-MM-dd_HH-mm}.log 每分钟开始时进行翻转。 与以前的情况类似,除了在每分钟的开始发生翻转。
/ wombat / foo%d {yyyy-MM-dd_HH-mm,UTC} .log 每分钟开始时进行翻转。 与以前的情况类似,除了文件名将以UTC表示。
/ foo /%d {yyyy-MM,aux } /%d.log 每天滚动。存档位于包含年和月的文件夹下。 在此示例中,第一个%d令牌被标记为 辅助 iliary。然后假定第二个%d令牌是主要令牌,其中省略了时间和日期模式。因此,过渡将每天发生一次(%d的默认设置),并且文件夹名称将取决于年份和月份。例如,在2006年11月,归档文件将全部放在/ foo / 2006

然后今天主要测试了一下rollingPolicy节点下用ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy类和TimeBasedRollingPolicy类的MaxFileSize,MaxHistory的作用:

MaxFileSize:这个参数决定了单个log日志的大小,如果是ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy类,那就会在达到这个值得时候进行切分。但是如果用的是TimeBasedRollingPolicy类那么达到这个值之后,就不再写入日志,这点是比较坑的。

MaxHistory:这个值代表的是周期的概念,刚开始看各种文章有的说是代表保存日志的最多的天数,有的说是保存的文件个数,然后看了下官网,官网在SizeAndTimeBasedRollingPolicy和TimeBasedRollingPolicy类之下的时候的解释是Size and time based archiving supports deletion of old archive files. You need to specify the number of periods to preserve with the maxHistory property. When your application is stopped and restarted, logging will continue at the correct location, i.e. at the largest index number for the current period.然后经过我测试之后,发现这个表示的是周期。即在fileNamePattern 参数配置的如果是按照天进行分割,那这个的数量就表示是N天,如果fileNamePattern 配置的是分钟,那这个就表示N分钟。然后这个数量不能用类似3*30这种表达,必须直接用90表达。

 

参考:https://zhuanlan.zhihu.com/p/70595392

http://logback.qos.ch/manual/appenders.html#rfaRollingPolicy

https://blog.csdn.net/SIMBA1949/article/details/90718200

https://blog.csdn.net/u012723183/article/details/107685109

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