<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- 输出到控制台中 -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>

	<!-- 每天产生一个日志文件 -->
	<appender name="debug_log" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/house365-debug_log.log" />
		<!-- 设置是否在重新启动服务时，在原有日志的基础添加新日志 -->
		<param name="Append" value="true" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>

	<!-- 输出到控制台中 -->
	<appender name="other_console" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>

	<!-- 输入日志到IBATIS中 -->
	<appender name="iBatisLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/IBATIS/iBatis.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>

	<!-- 输入日志到SQL中 -->
	<appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/SQL/sql.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>



	<!-- 输入日志到SYSLOG中 -->
	<appender name="sysLogAllAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/SYSLOG/ALL.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %m%n" />
		</layout>
	</appender>

	<appender name="sysLogERRORAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/SYSLOG/ERROR.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %m%n" />
		</layout>
		<!-- 设置记录ERROR级别日志 -->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="ERROR" />
			<param name="LevelMin" value="ERROR" />
		</filter>
	</appender>

	<appender name="sysLogInfoAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/SYSLOG/ERROR.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %m%n" />
		</layout>
		<!-- 设置记录ERROR级别日志 -->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="INFO" />
			<param name="LevelMin" value="INFO" />
		</filter>
	</appender>

	<appender name="sysLogWarnAppender" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/SYSLOG/ERROR.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %m%n" />
		</layout>
		<!-- 设置记录ERROR级别日志 -->
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="WARN" />
			<param name="LevelMin" value="WARN" />
		</filter>
	</appender>

	<!-- 接口每天产生一个日志文件 -->
	<appender name="app_interface_filelog" class="org.apache.log4j.DailyRollingFileAppender">
		<!-- 设置File参数：日志输出文件名 -->
		<param name="File" value="${catalina.home}/logs/house365-interface.log" />
		<!-- 设置是否在重新启动服务时，在原有日志的基础添加新日志 -->
		<param name="Append" value="true" />
		<param name="DatePattern" value="'.'yyyy-MM-dd" />
		<!-- 设置输出文件项目和格式 -->
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p %-d{yyyy-MM-dd HH:mm:ss, SSS} [%c.%M(%L)] - %m%n" />
		</layout>
	</appender>

	<logger name="sysLog" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="sysLogAllAppender" />
	</logger>

	<!-- 设置类名限制输出的通道 -->
	<logger name="com.alibaba.dubbo" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<logger name="org.apache.zookeeper" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<logger name="org.I0Itec.zkclient" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<logger name="org.quartz" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<logger name="org.jboss" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<logger name="org.apache.commons.beanutils" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（Connection） -->
	<logger name="java.sql.Connection" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<logger name="com.house365.ws.dao.mapper" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（Statement） -->
	<logger name="java.sql.Statement" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（PreparedStatement） -->
	<logger name="java.sql.PreparedStatement" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（ResultSet） -->
	<logger name="java.sql.ResultSet" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（SimpleDataSource） -->
	<logger name="com.ibatis.common.jdbc.SimpleDataSource" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置类名限制输出的通道（SrciptRunner） -->
	<logger name="com.ibatis.common.jdbc.ScriptRunner" additivity="false">
		<level value="DEBUG" />
	</logger>

	<!-- 设置类名限制输出的通道（SqlMapClientDelegate） -->
	<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 配置类名限制输出的通道（RedisCache） -->
	<logger name="com.ibatis.sqlmap.engine.cache.redis" additivity="true">
		<level value="DEBUG" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置包限制输出的通道（springframework -->
	<logger name="org.springframework" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>
	<logger name="com.mangofactory" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>
	<logger name="org.apache.http" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>
	<logger name="net.bull.javamelody" additivity="false">
		<level value="WARN" />
		<appender-ref ref="console" />
	</logger>

	<!-- 设置包限制输出的通道（springframework -->
	<logger name="com.house365.web.util.StringFileUtils" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="sysLogInfoAppender" />
	</logger>

	<logger name="InterfaceLog" additivity="false">
		<level value="DEBUG" />
		<appender-ref ref="app_interface_filelog" />
	</logger>

	<!-- 设置接收所有输出的通道 -->
	<root>
		<level value="INFO" />
		<appender-ref ref="console" />
	</root>

</log4j:configuration>
