<?xml version="1.0" encoding="UTF-8"?>
<!--Configuration后面的status，这个用于设置log4j2自身内部的信息输出，可以不设置，当设置成trace时，你会看到log4j2内部各种详细输出-->
<!--monitorInterval：Log4j能够自动检测修改配置 文件和重新配置本身，设置间隔秒数-->
<configuration monitorInterval="5">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!--变量配置-->
    <Properties>
        <!-- 格式化输出：%date表示日期，%thread表示线程名，%-5level：级别从左显示5个字符宽度 %msg：日志消息，%n是换行符-->
        <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
        <property name="LOG_PATTERN" value="%d [%X{traceId}] [%thread] %-5level %logger{36} - %msg%n"/>
        <property name="VARIATE_LOG_PATTERN" value="%d - %msg%n"/>
        <!-- 定义日志存储的路径 -->
        <property name="FILE_PATH" value="${sys:user.home}/logs/ame"/>-->
        <property name="LINEAGE_FILE_PATH" value="${sys:user.home}/logs/lineage"/>-->
<!--        <property name="FILE_PATH" value="${sys:log.dir:-/data/logs/ame}"/>-->
        <property name="APP_NAME" value="ame"/>
        <property name="LOG_ROOT" value="/home/admin/application/logs"/>
        <property name="LOG_LEVEL" value="info"/>

        <property name="LOG_PATTERN"
                  value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{taskId}] [%X{version}] %-5level %logger{36} - %msg%n"/>

        <property name="COST_PATTERN"
                  value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{taskId}] [%X{version}] [%X{sqlId}] %-5level %logger{36} - %msg%n"/>

        <property name="ANTLR_PATTERN"
                  value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{taskId}] [%X{version}] [%X{sqlId}] %-5level %logger{36} - %msg%n"/>

        <property name="CALCITE_PATTERN"
                  value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{taskId}] [%X{version}] [%X{sqlId}] %-5level %logger{36} - %msg%n"/>

        <property name="METADATA_PATTERN"
                  value="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%X{taskId}] [%X{version}] [%X{sqlId}] %-5level %logger{36} - %msg%n"/>

    </Properties>

    <appenders>

        <!--控制台日志-->
        <console name="STDOUT-APPENDER" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <PatternLayout pattern="%style{%d{ISO8601}}{yellow} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%logger{36}}{bright,yellow}: %msg%n%throwable"/>
            <!--控制台只输出level及其以上级别的信息（onMatch），其他的直接拒绝（onMismatch）-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
        </console>

        <!--common错误日志-->
        <RollingFile name="ERROR-APPENDER" fileName="${FILE_PATH}/common-error.log"
                     filePattern="${FILE_PATH}/common-error.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>

            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--应用默认日志-->
        <RollingFile name="APP-DEFAULT-APPENDER" fileName="${FILE_PATH}/app-default.log"
                     filePattern="${FILE_PATH}/app-default.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="AME-SERVICE-SCRIPT-CHECKEVARIATE-APPENDER" fileName="${FILE_PATH}/ame-variate-check-fail-detail.log"
                     filePattern="${FILE_PATH}/ame-variate-check-fail-detail.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${VARIATE_LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>


        <RollingFile name="AME-SERVICE-USE-CHECK-APPENDER" fileName="${FILE_PATH}/ame-use-detail.log"
                     filePattern="${FILE_PATH}/ame-use-detail.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${VARIATE_LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="AME-SERVICE-VARIATE-APPENDER" fileName="${FILE_PATH}/ame-variate-detail.log"
                     filePattern="${FILE_PATH}/ame-variate-detail.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${VARIATE_LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>




        <!--cache详情日志-->
        <RollingFile name="AME-SERVICE-CACHE-DETAIL-APPENDER" fileName="${FILE_PATH}/ame-service-cache-detail.log"
                     filePattern="${FILE_PATH}/ame-service-cache-detail.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--connector详情日志-->
        <RollingFile name="AME-SERVICE-CONNECTOR-DETAIL-APPENDER" fileName="${FILE_PATH}/ame-service-connector-detail.log"
                     filePattern="${FILE_PATH}/ame-service-connector-detail.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--dag详情日志-->
        <RollingFile name="AME-SERVICE-DAG-APPENDER" fileName="${FILE_PATH}/ame-service-dag.log"
                     filePattern="${FILE_PATH}/ame-service-dag.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--dag详情日志-->
        <RollingFile name="SQL-DAG-TREE-APPENDER" fileName="${FILE_PATH}/ame-sql-dag-tree.log"
                     filePattern="${FILE_PATH}/ame-sql-dag-tree.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
<!--            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>-->
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="24"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="GET-VAR-APPENDER" fileName="${FILE_PATH}/ame-get-var.log"
                     filePattern="${FILE_PATH}/ame-get-var.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="24"/>
                <SizeBasedTriggeringPolicy size="500MB"/>
            </Policies>
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--dag详情日志-->
        <RollingFile name="DAG-PARSER-ERROR-APPENDER" fileName="${FILE_PATH}/ame-dag-parser-error.log"
                     filePattern="${FILE_PATH}/ame-dag-parser-error.log.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
<!--            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>-->
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="24"/>
                <SizeBasedTriggeringPolicy size="200MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--Message publish 日志-->
        <RollingFile name="AME-SERVICE-MESSAGE-PUBLISH-DETAIL-APPENDER" fileName="${FILE_PATH}/ame-service-message-publish-detail.log"
                     filePattern="${FILE_PATH}/ame-service-message-publish-detail.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!--Message publish 日志-->
        <RollingFile name="AME-SERVICE-MESSAGE-PUBLISH-SUCCESS-APPENDER" fileName="${FILE_PATH}/ame-service-message-publish-success.log"
                     filePattern="${FILE_PATH}/ame-service-message-publish-success.%d{yyyy-MM-dd}_%i.log.gz"
                     append="true">
            <PatternLayout pattern="${LOG_PATTERN}" charset="UTF-8"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- lineage parser start-->
        <!-- Time-consuming of a sql in different stages -->
        <RollingFile name="cost" fileName="${LINEAGE_FILE_PATH}/cost.log"
                     filePattern="${LINEAGE_FILE_PATH}/cost-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${COST_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- parsing filed sql content record -->
        <RollingFile name="sql" fileName="${LINEAGE_FILE_PATH}/sql.log"
                     filePattern="${LINEAGE_FILE_PATH}/sql-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- wrong metadata message -->
        <RollingFile name="metadata" fileName="${LINEAGE_FILE_PATH}/metadata.log"
                     filePattern="${LINEAGE_FILE_PATH}/metadata-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${METADATA_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- calcite parsing filed message -->
        <RollingFile name="calcite" fileName="${LINEAGE_FILE_PATH}/calcite.log"
                     filePattern="${LINEAGE_FILE_PATH}/calcite-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${CALCITE_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <!-- antlr parsing filed message -->
        <RollingFile name="antlr" fileName="${LINEAGE_FILE_PATH}/antlr.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_syntax" fileName="${LINEAGE_FILE_PATH}/antlr_syntax.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-syntax-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_npe" fileName="${LINEAGE_FILE_PATH}/antlr_npe.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-npe-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_unsupport" fileName="${LINEAGE_FILE_PATH}/antlr_unsupport.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-unsupport-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_snoop" fileName="${LINEAGE_FILE_PATH}/antlr_snoop.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-snoop-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_scope" fileName="${LINEAGE_FILE_PATH}/antlr_scope.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-scope-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>

        <RollingFile name="antlr_variable" fileName="${LINEAGE_FILE_PATH}/antlr_variable.log"
                     filePattern="${LINEAGE_FILE_PATH}/antlr-variable-%d{yyyy-MM-dd}_%i.log.gz">
            <PatternLayout pattern="${ANTLR_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次，默认是1 hour-->
                <TimeBasedTriggeringPolicy interval="1"/>
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <!-- DefaultRolloverStrategy属性如不设置，则默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="15"/>
        </RollingFile>
        <!-- lineage parser end-->


    </appenders>

    <!--Logger节点用来单独指定日志的形式，比如要为指定包下的class指定不同的日志级别等。-->
    <!--然后定义loggers，只有定义了logger并引入的appender，appender才会生效-->
    <loggers>

        <AsyncLogger name="cost" level="INFO" additivity="false">
            <AppenderRef ref="cost"/>
        </AsyncLogger>

        <AsyncLogger name="sql" level="INFO" additivity="false">
            <AppenderRef ref="sql"/>
        </AsyncLogger>

        <AsyncLogger name="metadata" level="INFO" additivity="false">
            <AppenderRef ref="metadata"/>
        </AsyncLogger>

        <AsyncLogger name="antlr" level="INFO" additivity="false">
            <AppenderRef ref="antlr"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_variable" level="INFO" additivity="false">
            <AppenderRef ref="antlr_variable"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_syntax" level="INFO" additivity="false">
            <AppenderRef ref="antlr_syntax"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_npe" level="INFO" additivity="false">
            <AppenderRef ref="antlr_npe"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_unsupport" level="INFO" additivity="false">
            <AppenderRef ref="antlr_unsupport"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_snoop" level="INFO" additivity="false">
            <AppenderRef ref="antlr_snoop"/>
        </AsyncLogger>

        <AsyncLogger name="antlr_scope" level="INFO" additivity="false">
            <AppenderRef ref="antlr_scope"/>
        </AsyncLogger>

        <AsyncLogger name="calcite" level="INFO" additivity="false">
            <AppenderRef ref="calcite"/>
        </AsyncLogger>



        <!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
        <AsyncLogger name="org.mybatis" level="info" additivity="false">
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>
        <!--监控系统信息-->
        <!--若是additivity设为false，则 子Logger 只会在自己的appender里输出，而不会在 父Logger 的appender里输出。-->
        <AsyncLogger name="org.springframework" level="info" additivity="false">
            <AppenderRef ref="STDOUT-APPENDER"/>
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
        </AsyncLogger>

        <!--应用下所有日志-->
        <AsyncLogger name="com.aloudata.ame" additivity="false" level="${LOG_LEVEL}">
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>

        <!--CACHE业务日志-->
        <AsyncLogger name="AME-SERVICE-CACHE-DETAIL" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-CACHE-DETAIL-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <!--CONNECTOR业务日志-->
        <AsyncLogger name="com.aloudata.ame.core.connector" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-CONNECTOR-DETAIL-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
        </AsyncLogger>

        <!--dag业务日志-->
        <AsyncLogger name="com.aloudata.ame.core.service.script.dag" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-DAG-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
        </AsyncLogger>

        <!--dag业务日志-->
        <AsyncLogger name="SQL-DAG-TREE" additivity="false" level="info">
            <AppenderRef ref="SQL-DAG-TREE-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="GET-VAR" additivity="false" level="info">
            <AppenderRef ref="GET-VAR-APPENDER"/>
        </AsyncLogger>

        <!--dag业务日志-->
        <AsyncLogger name="DAG-PARSER-ERROR" additivity="false" level="info">
            <AppenderRef ref="DAG-PARSER-ERROR-APPENDER"/>
        </AsyncLogger>

        <!--发送消息日志-->
        <AsyncLogger name="AME-SERVICE-MESSAGE-PUBLISH-DETAIL" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-MESSAGE-PUBLISH-DETAIL-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <!--发送消息日志-->
        <AsyncLogger name="AME-SERVICE-MESSAGE-PUBLISH-SUCCESS" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-MESSAGE-PUBLISH-SUCCESS-APPENDER"/>
        </AsyncLogger>




        <!--dml脚本变量值检查-->
        <AsyncLogger name="AME-SERVICE-SCRIPT-CHECKEVARIATE" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-SCRIPT-CHECKEVARIATE-APPENDER"/>
            <AppenderRef ref="AME-SERVICE-MESSAGE-PUBLISH-DETAIL-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>

        <!--dml脚本use -->
        <AsyncLogger name="AME-SERVICE-USE-CHECK" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-USE-CHECK-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>


        <AsyncLogger name="AME-SERVICE-VARIATE" additivity="false" level="info">
            <AppenderRef ref="AME-SERVICE-VARIATE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>



        <AsyncRoot level="info">
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
            <!--<appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>-->
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncRoot>
    </loggers>

</configuration>