<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 ="info"> <appender-ref ref ="ASYNC"/> </root>
異步配置參數:
| 屬性名 | 類型 | 描述 |
| queueSize | int | BlockingQueue的最大容量,默認情況下,大小為256。 |
| discardingThreshold | int | 默認情況下,當BlockingQueue還有20%容量,他將丟棄TRACE、DEBUG和INFO級別的event,只保留WARN和ERROR級別的event。為了保持所有的events,設置該值為0。 |
| includeCallerData | boolean | 提取調用者數據的代價是相當昂貴的。為了提升性能,默認情況下,當event被加入到queue時,event關聯的調用者數據不會被提取。默認情況下,只有"cheap"的數據,如線程名。 |
