把rpc日志和error日志区分开来,打印到不同的日志文件中
<?xml version="1.0" encoding="UTF-8"?>
<!-- For assistance related to logback-translator or configuration -->
<!-- files in general, please contact the logback user mailing list -->
<!-- at http://www.qos.ch/mailman/listinfo/logback-user -->
<!-- -->
<!-- For professional support please see -->
<!-- http://www.qos.ch/shop/products/professionalSupport -->
<!-- -->
<configuration scan="true">
<property name="APP" value="xxxx"/>
<property name="LOG_HOME" value="D:/log/${APP}"/>
<!--控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
</appender>
<!--详细业务日志-->
<appender name="DETAIL" class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false">
<File>${LOG_HOME}/${APP}_detail.log</File>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP}_detail.log.%d{yyyyMMdd}</fileNamePattern>
</rollingPolicy>
</appender>
<!--异步输出-->
<appender name="ASYNC-DETAIL" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>2048</queueSize>
<appender-ref ref="DETAIL"/>
</appender>
<!--错误日志-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false">
<File>${LOG_HOME}/${APP}_err.log</File>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP}_err.log.%d{yyyyMMdd}</fileNamePattern>
</rollingPolicy>
</appender>
<!--RPC日志-->
<appender name="RPC" class="ch.qos.logback.core.rolling.RollingFileAppender" additivity="false">
<File>${LOG_HOME}/${APP}_rpc.log</File>
<encoder>
<pattern>%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0} %X{ServiceId} - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP}_rpc.log.%d{yyyyMMdd}</fileNamePattern>
</rollingPolicy>
</appender>
<!--异步输出-->
<appender name="ASYNC-RPC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>2048</queueSize>
<appender-ref ref="RPC"/>
</appender>
<logger name="org.springframework" level="WARN" additivity="false"/>
<logger name="org.apache.httpclient.wire" level="INFO" additivity="false"/>
<logger name="org.apache.commons.httpclient" level="INFO" additivity="false"/>
<logger name="org.apache.zookeeper" level="INFO" additivity="false"/>
<!--RPC日志模块-->
<logger name="com.jdd.appse.appserver.integration" level="INFO">
<appender-ref ref="ASYNC-RPC"/>
</logger>
<root level="INFO">
<appender-ref ref="ASYNC-DETAIL"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ERROR"/>
</root>
</configuration>
<!--
#模式符号 - 用途(附加说明);{可选附加选项}(附加选项说明)
# %c - 日志名称(通常是构造函数的参数);{数字}("a.b.c" 的名称使用 %c{2} 会输出 "b.c")
# %C - 调用者的类名(速度慢,不推荐使用);{数字}(同上)
# %d - 日志时间;{SimpleDateFormat所能使用的格式}
# %F - 调用者的文件名(速度极慢,不推荐使用)
# %l - 调用者的函数名、文件名、行号(速度极其极其慢,不推荐使用)
# %L - 调用者的行号(速度极慢,不推荐使用)
# %m - 日志
# %M - 调用者的函数名(速度极慢,不推荐使用)
# %n - 换行符号
# %p - 日志优先级别(DEBUG, INFO, WARN, ERROR)
# %r - 输出日志所用毫秒数
# %t - 调用者的进程名
# %x - Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.
# %X - Used to output the MDC (mapped diagnostic context) associated with the thread that generated the logging event.
#
#模式修饰符 - 对齐 - 最小长度 - 最大长度 - 说明
# %20c 右 20 ~
# %-20c 左 20 ~
# %.30c ~ ~ 30
# %20.30c 右 20 30
# %-20.30c 左 20 30
-->