是否可以获取Logback的AsyncAppender当前的队列大小?
这是我们配置的相关部分:
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>1000</queueSize>
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE" />
</appender>
如果附加程序附加到您的根记录器,类似这样的事情应该可以工作:
var root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
var appender = root.getAppender("ASYNC");
if (appender instanceof AsyncAppenderBase<ILoggingEvent> asyncAppender) {
int currentQueueSize = asyncAppender.getNumberOfElementsInQueue();
}