logback配置文件详解

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	scan 属性:默认为true表示如果配置文件被更改,将重新加载
	scanPeriod属性:设置监测配置文件是否有修改的时间间隔,格式 数值+单位(默认单位 毫秒),当且仅当scan属性为true时,此属性有效
	debug属性:当设置为true时,将打印出logback内部日志信息。默认为false
 -->
<configuration scan="true" scanPeriod="1 seconds" debug="false">
     <!--变量设置  -->
	<property name="LOG_FILE" value="/log/tomcat/myJOb/myJOb.error.log" />
	<property name="appName" value="myJOb"/>
    <!-- 设置上下文名称 -->
    <contextName>${appName}</contextName>
    <!-- 获取时间戳字符串
     	属性key:用来标识此timestamp的名字
     	属性datePattern:将当前日期转成字符串的格式,和SimpleDateFormat一致
     -->
	<timestamp key="byDate" datePattern="yyyyMMdd" />
	
	<!-- OutputStreamAppender 其他appender基于该appender提供的一些基础服务构建。用户通常不直接实例化该appender。 -->
	
	
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} %-5level %logger{50} - %msg%n</pattern>
		</encoder>
	</appender>
	
	<!-- FileAppender(OutPutStreamAppender的子类):将日志写入 文件。目标文件由file子节点来指定,如果文件已经存在,则根据append节点的值来判断是追加还是截断 -->
	<appender name="FILE" class="ch.qos.logback.core.FileAppender">
	    <file>${LOG_FILE}</file>
	    <!-- 默认为true 即在文件的末尾追加 -->
	    <append>true</append>
	    <!-- 默认情况下,每个日志事件都会立即刷新基础输出流。但是有时为了提高日志吞吐量,可以把该属性设置为false -->
	    <immediateFlush>true</immediateFlush>
	    <!-- encoder 对记录件进行格式化 
	    encoder 负责将日志事件转换成一个字节数组,并写入outputStream。encoder是在0.9.19版本引入的,在此之前所有的appender依靠一个layout将事件转换成String,并把String通过输出字符流写出。
	    在之前的版本logback版本中,用户需要在FileAppender中内嵌一个PatternLayout。0.9.19之后,fileAppender和它的子类都是使用encoder
	   layout只能将事件转换为字符串,此外layout无法控制何时写入,与此相比,encoder不仅可以完全控制要写出的字节的格式,还可以控制何时(以及是否)可以写出这些字节
	   目前  PatternLayoutEncoder 是唯一真正有用的编码器
	   pattern子节点:用来控制日志的输入格式。%+转换符
	    -->
	    <encoder>
	      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
	    </encoder>
  	</appender>
  	
	<!-- 
      appender是configuration中负责写日志的组件
      name属性:标识
      class属性:指定appender的全限定性名称
               分类:
      1.consoleAppender 把日志添加到控制台
      2.FileAppender:把日志添加到文件
      3.RollingFileAppender:滚动式记录日志到文件中。先将日志记录到指定文件中,当达到某个条件时,将日志记录到其他文件中
     -->
     
     <!-- RollingFileAppender
	           一个RollingFileAppender必须包含RollingPolicy和TriggerPolicy.当然 如果RollingPolicy也实现了TriggeringPolicy,
	           那么只需要设置RollingPolicy就行了,典型的代表SizeAndTimeBasedRollingPolicy
     	file 子节点:被写入的文件名可以是相对,也可以是绝对目录,如果不存在,则自动创建,没有默认值
     	append子节点:参考fileAppend的该属性
     	encoder子节点:参考outputStreamAppender的该属性
     	rollingPolicy节点:当翻转发生时,RollingFileAppender将做什么
     	triggeringPolicy:将确定是否以及何时发生翻转
     	prudent子节点(boolean类型):谨慎模式。RollingFileAppender支持谨慎模式。在TimeBasedRollingPolicy中使用谨慎模式有两个限制
     	1.在谨慎模式中,不支持或不允许文件压缩
     	2.file属性不能被设置,或者说必须留空
     
      -->
    <appender name="fileRolling" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <!-- rollingPolicy子节点 
        	当发生滚动时,决定RollingFileAppender的行为,涉及文件移动和重命名。属性class定义具体的滚动策略类
			
        -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        	<!--必要节点, 属性定义已滚动(已归档)日志文件的名称。他的值应该包含文件名,以及适当放置的%d转换说明符, -->
            <fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <!--可选节点。控制要保留的最大归档文件数,以异步形式删除较旧的文件。例如如果您指定了每月滚动,并将 maxHistory设置为6,则将保留留个月的归档文件,并删除6个月以上的归档文件-->
            <maxHistory>15</maxHistory>
            <!-- 保存文件的大小,超出则创建新的文件 -->
            <maxFileSize>100MB</maxFileSize>
            <!--可选节点  属性控制所有归档文件的总大小,当超过总大小上限时,最早的档案将被异步删除,设置该属性时,必须保证maxHistory属性也被设置了 -->
            <totalSizeCap>1GB</totalSizeCap>
            <!--boolean 类型 如果设置为true,则将在appender程序启动时执行归档删除(默认为false)  -->
            <cleanHistoryOnStart></cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>
	
    <!-- 
	  logger:用来指定某一个包或者某一个类的日志打印级别    
      name属性:指定的包或者类
      level属性:打印级别设置(大小写无关)TRACE、DEBUG、INFO、WARN、ERROR、ALL、OFF
      additivity属性:是否向上级logger传递打印信息,默认为true
      appender-ref子节点设置(可以有多个):表示这个logger将会应用到相应的appender
     -->
	<logger name="org.springframework" level="INFO" additivity="true"></logger>
    <!-- root 特殊的logger只有一个level属性,可以包含一个或多个appender-ref子节点 -->
	<root level="WARN">
		<appender-ref ref="STDOUT" />
		<appender-ref ref="fileRolling" />
	</root>
</configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值