logback 分级别创建log

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<property resource="config.properties" />
	<property name="log.base" value="${logback.logbase.name}" />
	<jmxConfigurator />
	
	<!--输出到控制台,方便调试,应用时可以关闭 -->
	<appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender"> 
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
			<pattern>%date  [%thread] %-5level %logger{80} -  %msg%n</pattern> 
			<charset>UTF-8</charset> 
		</encoder> 
	
	</appender>
	
	
	<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
	<appender name="allFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Encoding>UTF-8</Encoding>
		<File>${log.base}.all.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.all.log.zip</FileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%date [%thread] %-5level %logger{80} -  %msg%n</pattern>
		</layout>	
	</appender>
	
	<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
	<appender name="infoFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Encoding>UTF-8</Encoding>
		<File>${log.base}.info.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.info.log.zip</FileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%date [%thread] %-5level %logger{80} -  %msg%n</pattern>
		</layout>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>INFO</level>
          <onMatch>ACCEPT</onMatch>
          <onMismatch>DENY</onMismatch>
        </filter>
		
	</appender>
	
	
	<appender name="warnFileLog"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Encoding>UTF-8</Encoding>
		<File>${log.base}.warn.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.warn.log.zip</FileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%date [%thread] %-5level %logger{80} -  %msg%n</pattern>
		</layout>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>WARN</level>
          <onMatch>ACCEPT</onMatch>
          <onMismatch>DENY</onMismatch>
        </filter>
		
	</appender>
	
	<appender name="errorFileLog"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Encoding>UTF-8</Encoding>
		<File>${log.base}.error.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.error.log.zip</FileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%date [%thread] %-5level %logger{80} -  %msg%n</pattern>
		</layout>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>ERROR</level>
          <onMatch>ACCEPT</onMatch>
          <onMismatch>DENY</onMismatch>
        </filter>
	
	</appender>



<appender name="debugFileLog"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<Encoding>UTF-8</Encoding>
		<File>${log.base}.debug.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<FileNamePattern>${log.base}.%d{yyyy-MM-dd}.debug.log.zip</FileNamePattern>
		</rollingPolicy>
		<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>100MB</MaxFileSize>
		</triggeringPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%date [%thread] %-5level %logger{80} -  %msg%n</pattern>
		</layout>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
          <level>DEBUG</level>
          <onMatch>ACCEPT</onMatch>
          <onMismatch>DENY</onMismatch>
        </filter>
	
	</appender>
	
	<logger name="ch.qos.logback">
		<level value="WARN" />
	</logger>
	
	<logger name="org.apache">
		<level value="ERROR" />
	</logger>

	<logger name="org.springframework">
		<level value="WARN" />
	</logger>

	<logger name="org.springframework.data.mongodb">
		<level value="INFO" />
	</logger>
	
	<logger name="com.xx">
		<level value="DEBUG" />
	</logger>
	
	<logger name="com.xx.protocol.service">
		<level value="INFO" />
	</logger>
	
	<root>
		<appender-ref ref="ConsoleAppender"  level="DEBUG"/>
		<appender-ref ref="allFileLog"  level="INFO" />
		<appender-ref ref="infoFileLog"  level="INFO" />
		<appender-ref ref="warnFileLog"  level="WARN" />
		<appender-ref ref="errorFileLog"  level="ERROR" />
		<appender-ref ref="debugFileLog"  level="DEBUG" />
	</root>
</configuration>

猜你喜欢

转载自republicw.iteye.com/blog/1925037
今日推荐