logback-spring.xml 5.43 KB
Newer Older
rex.tan committed
1 2 3 4 5 6 7 8
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
	<!--2、设置上下文名称 每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。 
		一旦设置,不能修改,可以通过 %contextName 来打印日志上下文名称,一般来说我们不用这个属性,可有可无。 -->
	<!--<contextName>cool_is_life</contextName> -->
	<!--3、设置变量 用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。 通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。 -->
	<!--<property name="log.path" value="/logs/logback.log" /> -->
	<!--<property name="log.path" value="/logs/logback" /> -->
youling committed
9
	<property name="logback.logdir" value="../" />
rex.tan committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
	<property name="logback.appname" value="8timer-api" />
	<!--4、appender用来格式化日志输出节点,有俩个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。 
		控制台输出 ConsoleAppender 输出到文件 RollingFileAppender -->
	<!--输出到控制台 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} %-5level [%thread]  %logger - %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!--输出到文件 -->
	<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Error 日志,因为 Error 的级别高,所以我们使用下面的策略,可以避免输出 
			Error 的日志 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<!--过滤 Error -->
			<level>ERROR</level>
			<!--匹配到就禁止 -->
			<onMatch>DENY</onMatch>
			<!--没有匹配到就允许 -->
			<onMismatch>ACCEPT</onMismatch>
		</filter>
		<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则,如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天 
			的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
		<file>${logback.logdir}/${logback.appname}.info.log</file>
		<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间 -->
			<FileNamePattern>${logback.logdir}/bak/${logback.appname}.info.%d{yyyy-MM-dd}.%i.log
			</FileNamePattern>
			<!--只保留最近7天的日志 -->
			<maxHistory>7</maxHistory>
			<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
			<totalSizeCap>1GB</totalSizeCap>
			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} %-5level [%thread]  %logger - %msg%n</pattern>
		</encoder>
	</appender>
	
	<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter -->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>error</level>
		</filter>
		<!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天 
			的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
		<File>${logback.logdir}/${logback.appname}.error.log</File>
		<!--滚动策略,按照时间滚动 TimeBasedRollingPolicy -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间 -->
			<FileNamePattern>${logback.logdir}/bak/${logback.appname}.error.%d{yyyy-MM-dd}.%i.log
			</FileNamePattern>
			<!--只保留最近7天的日志 -->
			<maxHistory>7</maxHistory>
			<!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
			<!--<totalSizeCap>1GB</totalSizeCap> -->
			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<!--日志输出编码格式化 -->
		<encoder>
			<charset>UTF-8</charset>
			<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>
		</encoder>
	</appender>
	
	<!--1、root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。 level:用来设置打印级别,大小写无关:TRACE, 
		DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。 默认是DEBUG。 可以包含零个或多个元素,标识这个appender将会添加到这个loger。 -->
	<root level="INFO">
		<appender-ref ref="console" />
		<appender-ref ref="file" />
		<appender-ref ref="fileErrorLog" />
	</root>
	
</configuration>