spring Logback 日誌

pom.xml
 spring

<!-- 日誌處理 -->
			<!-- 
			Logback-classic module requires the presence of slf4j-api.jar and logback-core.jar 
			in addition to logback-classic.jar on the classpath.
			 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>1.6.4</version>
			</dependency>
			
			<dependency>
			    <groupId>ch.qos.logback</groupId>
			    <artifactId>logback-core</artifactId>
			    <version>1.1.3</version>
			</dependency>
			
			<dependency>  
			    <groupId>org.logback-extensions</groupId>  
			    <artifactId>logback-ext-spring</artifactId>  
			    <version>0.1.2</version>  
			</dependency>
	        <!-- 日誌處理 -->

 

 

logback.xml
 api

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" debug="false" scanPeriod="6 seconds">
	<!-- scan: 當此屬性設置爲true時,配置文件若是發生改變,將會被從新加載,默認值爲true -->
	<!-- debug: 當此屬性設置爲true時,將打印出logback內部日誌信息,實時查看logback運行狀態。默認值爲false -->
	
	
	<contextName>logback</contextName>
	<!-- contextName: 設置日誌上下文名稱,能夠經過%contextName來打印日誌上下文名稱 -->
	
	<property name="log.path" value="/usr/local/importdata/" />
	<!-- property能夠用來設置變量,能夠經過${name}來訪問     
	 	 name,用於${name}訪問的key
	 	 value,用於${name}訪問的value
	 -->
	 
	 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
	 	<!--filter 日誌輸出攔截器,能夠自定義攔截器也能夠用系統一些定義好的攔截器 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
              <level>WARN</level>
              <!-- ThresholdFilter來過濾掉ERROR級別如下的日誌不輸出到文件中 -->
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
            <!-- encoder和pattern節點組合用於具體輸出的日誌格式 -->
        </encoder>
    </appender>
    <!-- appender: 格式化日誌輸出節點,有倆個屬性name和class,class用來指定哪一種輸出策略,經常使用就是控制檯輸出策略和文件輸出策略  -->
    
    <!-- 用SizeAndTimeBasedRollingPolicy,配置子節點的maxFileSize來指定單個日誌文件的大小 -->
     <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
     	<!--  file節點用來指明日誌文件的輸出位置,能夠是絕對路徑也能夠是相對路徑 -->
        <file>${log.path}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
           <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
            
           <!-- 單個日誌文件最多 100MB, 60天的日誌週期,最大不能超過20GB -->
           <maxFileSize>100KB</maxFileSize>    
		   <maxHistory>7</maxHistory>
		   <totalSizeCap>2MKB</totalSizeCap>
		   <!-- 
		   <maxFileSize>100MB</maxFileSize>    
		   <maxHistory>60</maxHistory>
		   <totalSizeCap>20GB</totalSizeCap>
           -->
        </rollingPolicy>
		<!-- rollingPolicy日誌回滾策略,在這裏咱們用了TimeBasedRollingPolicy,基於時間的回滾策略,有如下子節點 -->
        <encoder>
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="DEBUG">
        <appender-ref ref="console" />
        <appender-ref ref="file" />
    </root>
    <!-- root節點,必選節點,用來指定最基礎的日誌輸出級別, 用來應用appender,格式化日誌輸出 -->
    
    <logger name="com.mysteel.importdata" level="DEBUG" />
	<!-- logger節點,可選節點,用來具體指明包的日誌輸出級別,它將會覆蓋root的輸出級別 -->

</configuration>
    <!-- 
     × Debug
     × Info
     × Warn
     × Error
     × Fatal
     一個等級比一個高
     -->
相關文章
相關標籤/搜索