logback的并发性与分布式使用
1. 并发
-
下面的appender是输出日志文件是同步输出的,即每次输出都会直接写IO到磁盘文件,当存在高并发应用会存在阻塞
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> //省略、、、 </appender>
-
下面是logback提供的异步状态下的日志配置
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> <!-- 默认如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志,若要保留全部日志,设置为0 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>1024</queueSize> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref="DEBUGFILE"/> <includeCallerData>true</includeCallerData> </appender>
AsyncAppender的实现原理是通过阻塞队列(Blocki