<?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: [%c.(%L)%M] - %m%n" />
        </layout>
    </appender>

    <!-- 输出到控制台中 -->
    <appender name="other_console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d] [%-5p] %c %n--%m--%n" />
        </layout>
    </appender>

    <!-- 输入日志到IBATIS中 -->
    <appender name="iBatisLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/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} [%c.%M(%L)] - %m%n" />
        </layout>
    </appender>

    <!-- 输入日志到SQL中 -->
    <appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/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} [%c.%M(%L)] - %m%n" />
        </layout>
    </appender>
    <!-- 输入日志到SYSLOG中 -->
    <appender name="sysLogAllAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/SYSLOG/ALL.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} [%c.%M(%L)] - %m%n" />
        </layout>
    </appender>
    <appender name="sysLogERRORAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/SYSLOG/ERROR.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} [%c.%M(%L)] - %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="/data/logs/365/SYSLOG/ERROR.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} [%c.%M(%L)] - %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="sysLogWarnAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/SYSLOG/ERROR.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} [%c.%M(%L)] - %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="sysLogErrorAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 设置File参数：日志输出文件名 -->
        <param name="File" value="/data/logs/365/SYSLOG/ERROR.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} [%c.%M(%L)] - %m%n" />
        </layout>
        <!-- 设置记录ERROR及以上级别日志 -->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMin" value="ERROR" />
        </filter>
    </appender>

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

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

    <logger name="org.apache.activemq" additivity="false">
        <level value="WARN"/>
        <appender-ref ref="console"/>
    </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>

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

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

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

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

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

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

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

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

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

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

</log4j:configuration>
