logback基本设置

logback依次寻找配置文件

  1. logback-test.xml
  2. logback.groovy
  3. logback.xml
  4. 通过 JDK 提供的 ServiceLoader 工具在类路径下寻找文件 META-INFO/services/ch.qos.logback.classic.spi.Configurator
  5. 通过 BasicConfigurator 为自己进行配置,并且日志将会全部在控制台打印出来

设置变量

<configuration>
        <!-- 设置变量 -->
	<property name="USER_NAME" value="/data/logs" />

	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
		<file>${USER_NAME}/myApp.log</file>
		<encoder>
			<pattern>%msg%n</pattern>
		</encoder>
	</appender>
	
	<root level="debug">
		<appender-ref ref="FILE" />
	</root>	
</configuration>

ConsoleAppender

默认通过System.out输出日志到控制台

<configuration>
	
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" >
		<!-- encoder 默认使用 ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
		<encoder>
			<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
		</encoder>	
	</appender>
	
	<root level="DEBUG">
		<appender-ref ref="STDOUT" />
	</root>
</configuration>

FileAppender

将日志信息输出到文件中,这里列出经常使用到的属性

  1. encoder:日志信息输出格式
  2. file:文件名
<configuration>
	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
		<file>testFile.log</file>
<!-- 		将 immediateFlush 设置为 false 可以获得更高的日志吞吐量 -->
		<immediateFlush>true</immediateFlush>
<!-- 		默认为 ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
		<encoder>
			<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
		</encoder>
	</appender>
	
	<root level="DEBUG">
		<appender-ref ref="FILE" />
	</root>
</configuration>

RollingFileAppender

轮转日志,简单来说就是,生成的日志满足你设置的条件时将进行什么操作

重要的子组件:

  1. RollingPolicy:负责发生什么
  2. TriggeringPolicy:负责什么时候发生轮转

TimeBasedRollingPolicy

基于时间来定义的轮转策略,既负责轮转的行为,也负责触发轮转

  1. fileNamePattern:为必填属性,用来定义轮转,
  2. maxHistory:日志文件最大保存时间,与fileNameParrern相关
  3. totalSizeCap:用来控制所有归档文件总的大小,达到这个大小后,旧的归档会被删除
<configuration>
	<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>logFile.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 			按天轮转 -->
			<fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 			保存 30 天的历史记录,最大大小为 30GB -->
			<maxHistory>30</maxHistory>
			<totalSizeCap>3GB</totalSizeCap>
		</rollingPolicy>
		
		<encoder>
			<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
		</encoder>
	</appender>
	
	<root level="DEBUG">
		<appender-ref ref="FILE" />
	</root>
</configuration>

SizeAndTimeBasedRollingPolicy

限制每个日志文件的大小并轮转

fileNamePattern中的%d和%i是必须要的,在日志文件达到maxFileSize的大小时,%i会进行递归,从0开始

<configuration debug="true">
	<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>mylog.txt</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 			按天轮转 -->
			<fileNamePattern>mylog-%d{yyyy-MM-dd}.%i.txt</fileNamePattern>
			<maxFileSize>100MB</maxFileSize>
			<maxHistory>60</maxHistory>
			<totalSizeCap>20GB</totalSizeCap>
		</rollingPolicy>
		
		<encoder>
			<pattern>%msg%n</pattern>
		</encoder>
	</appender>
	
	<root level="DEBUG">
		<appender-ref ref="ROLLING" />
	</root>
</configuration>

以上讲的是一个日志文件配置的基本需求,从控制台到输出文件再到输出文件限制,里面一些参数的详细介绍可以去看下面中文手册的前四章

参考:

logback中文手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值