屬性名 | 類型 | 描述 |
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>