属性名 | 类型 | 描述 |
queueSize | int | BlockingQueue的最大容量,默认状况下,大小为256。 |
discardingThreshold | int | 默认状况下,当BlockingQueue还有20%容量,他将丢弃TRACE、DEBUG和INFO级别的event,只保留WARN和ERROR级别的event。为了保持全部的events,设置该值为0。 |
includeCallerData | boolean | 提取调用者数据的代价是至关昂贵的。为了提高性能,默认状况下,当event被加入到queue时,event关联的调用者数据不会被提取。默认状况下,只有"cheap"的数据,如线程名。 |
默认状况下,event queue配置最大容量为256个events。若是队列被填满,应用程序线程被阻止记录新的events,直到工做线程有机会来转发一个或多个events。所以队列深度须要根据业务场景进行相应的测试,作出相应的更改,以达到较好的性能。
下面给出一个使用的配置示例:缓存
<appender name="FILE" class= "ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 按天来回滚,若是须要按小时来回滚,则设置为{yyyy-MM-dd_HH} --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>/opt/log/test.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 若是按天来回滚,则最大保存时间为1天,1天以前的都将被清理掉 --> <maxHistory>30</maxHistory> <!-- 日志输出格式 --> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern> </layout> </appender> <!-- 异步输出 --> <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,若是队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold >0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>512</queueSize> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref ="FILE"/> </appender> <root level ="trace"> <appender-ref ref ="ASYNC"/> </root>