log4j2

<?xml version="1.0" encoding="UTF-8"?>
<Configuration><!--Configuration有两个属性:status和monitorinterval-->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出-->

<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->

<!--<configuration status="WARN" monitorInterval="30"> -->

    <Appenders><!--有“输出目的地”之意。(题外话:Appender和LogEvent都是log4j2的重要组件)Log4j2为使用者提供了13种非常实用的Appenders,使用者可用方便的调用这13种Appender来控制日志的输出
Appenders节点,常见的有三种子节点:Console、RollingFile、File.-->
        
        <!--Console节点用来定义输出到控制台的Appender.
            name:指定Appender的名字.
            target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT.
            PatternLayout:输出格式,不设置默认为:%m%n.-->
        <Console name="STDOUT-APPENDER" target="SYSTEM_OUT">
            <PatternLayout pattern="%-5p %c{2} - %m%n%throwable" charset="UTF-8"/>
        </Console>
        <Console name="STDERR-APPENDER" target="SYSTEM_ERR">
            <PatternLayout pattern="%-5p %c{2} - %m%n%throwable" charset="UTF-8"/>
        </Console>
        
        <!--RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appender.
            name:指定Appender的名字.
            fileName:指定输出日志的目的文件带全路径的文件名.
            PatternLayout:输出格式,不设置默认为:%m%n.
            filePattern:指定新建日志文件的名称格式.
            Policies:指定滚动日志的策略,就是什么时候进行新建日志文件输出日志.
            TimeBasedTriggeringPolicy:Policies子节点,基于时间的滚动策略,interval属性用来指定多久滚动一次,默认是1 hour。modulate=true用来调整时间:比如现在是早上3am,interval是4,那么第一次滚动是在4am,接着是8am,12am...而不是7am.
            SizeBasedTriggeringPolicy:Policies子节点,基于指定文件大小的滚动策略,size属性用来定义每个日志文件的大小.
            DefaultRolloverStrategy:用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性)。
            append,boolean,指定是否是追加写入(append=true,默认情况),还是覆盖写入(append=false)-->
        <RollingFile name="ERROR-APPENDER" fileName="${ctx:log_root}/${ctx:app_name}/common-error.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/common-error.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n%throwable"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            
             <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了30 -->
            <DefaultRolloverStrategy/>
            
             <!--控制台只输出level及以上级别的信息(onMatch)
             onMatch="ACCEPT" 表示匹配该级别及以上
            onMatch="DENY" 表示不匹配该级别及以上
            onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
            onMismatch="ACCEPT" 表示匹配该级别以下
            onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
            onMismatch="DENY" 表示不匹配该级别以下的!
            日志输出的优先级:  debug < info < warn < error < fatal  -->       
            <ThresholdFilter level="ERROR"/>
        </RollingFile>
        <RollingFile name="APP-DEFAULT-APPENDER" fileName="${ctx:log_root}/${ctx:app_name}/app-default.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/app-default.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n%throwable"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>
        <RollingFile name="SOFA-DEFAULT-APPENDER" fileName="${ctx:log_root}/${ctx:app_name}/sofa-default.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/sofa-default.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n%throwable"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="SETTING-CORE-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/setting-core-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/setting-core-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>
        <RollingFile name="SETTING-BIZ-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/setting-biz-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/setting-biz-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="SETTING-CONTROLLER-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/setting-controller-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/setting-controller-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="BASELINE-CORE-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/baseline-core-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/baseline-core-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>
        <RollingFile name="BASELINE-BIZ-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/baseline-biz-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/baseline-biz-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="BASELINE-CONTROLLER-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/baseline-controller-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/baseline-controller-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>
        <RollingFile name="BASELINE-TASK-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/baseline-task-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/baseline-task-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="DATA-SYNC-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/data-sync-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/data-sync-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

        <RollingFile name="BASELINE-INTEGRATION-SERVICE-APPENDER"
                     fileName="${ctx:log_root}/${ctx:app_name}/baseline-integration-service.log"
                     filePattern="${ctx:log_root}/${ctx:app_name}/baseline-integration-service.log.%d{yyyy-MM-dd}"
                     append="true">
            <PatternLayout
                    pattern="%d [%X{traceId} %X{rpcId} - %X{loginUserEmail}/%X{loginUserID}/%X{remoteAddr}/%X{clientId} - %X{requestURIWithQueryString}] %-5p %c{2} - %m%n"
                    charset="UTF-8"/>
            <TimeBasedTriggeringPolicy/>
            <DefaultRolloverStrategy/>
        </RollingFile>

    </Appenders>
    
    <!--Loggers节点,常见的有两种:Root和Logger.-->
    <Loggers>
    
    <!-- 采用异步输出日志  
    additivity的作用在于 children-logger是否使用 rootLogger配置的appender进行输出。
    false:表示只用当前logger的appender-ref。
    true:表示当前logger的appender-ref和rootLogger的appender-ref都有效。-->
        <AsyncLogger name="STDOUT" additivity="false" level="info">
            <AppenderRef ref="STDOUT-APPENDER"/>
        </AsyncLogger>
        <AsyncLogger name="STDERR" additivity="false" level="${ctx:log_level}">
            <AppenderRef ref="STDERR-APPENDER"/>
        </AsyncLogger>
        <AsyncLogger name="com.alipay.sofa" additivity="false" level="${ctx:log_level}">
            <AppenderRef ref="SOFA-DEFAULT-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>
        <AsyncLogger name="com.alipay.traasprod" additivity="false" level="${ctx:log_level}">
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>
        <AsyncRoot level="${ctx:log_level}">
            <AppenderRef ref="APP-DEFAULT-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncRoot>

        <!--自定义的日志输出 -->
        <AsyncLogger name="SETTING_CORE_SERVICE" additivity="false" level="info">
            <AppenderRef ref="SETTING-CORE-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="SETTING_BIZ_SERVICE" additivity="false" level="info">
            <AppenderRef ref="SETTING-BIZ-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="SETTING_CONTROLLER_SERVICE_SERVICE" additivity="false" level="info">
            <AppenderRef ref="SETTING-CONTROLLER-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>
        
        <AsyncLogger name="BASELINE_CORE_SERVICE" additivity="false" level="info">
            <AppenderRef ref="BASELINE-CORE-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="BASELINE_TASK_SERVICE" additivity="false" level="info">
            <AppenderRef ref="BASELINE-TASK-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="BASELINE_BIZ_SERVICE" additivity="false" level="info">
            <AppenderRef ref="BASELINE-BIZ-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="BASELINE_CONTROLLER_SERVICE" additivity="false" level="info">
            <AppenderRef ref="BASELINE-CONTROLLER-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="DATA_SYNC_SERVICE" additivity="false" level="info">
            <AppenderRef ref="DATA-SYNC-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

        <AsyncLogger name="BASELINE_INTEGRATION_SERVICE" additivity="false" level="info">
            <AppenderRef ref="BASELINE-INTEGRATION-SERVICE-APPENDER"/>
            <AppenderRef ref="ERROR-APPENDER"/>
        </AsyncLogger>

    </Loggers>
</Configuration>

 

posted @ 2019-07-05 14:22  s20070542  阅读(196)  评论(0)    收藏  举报