package com.alvazan.play.logging; import java.util.concurrent.BlockingQueue; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; public class MyRejectHandler implements RejectedExecutionHandler { private AsyncAppender appender; public MyRejectHandler(AsyncAppender appender) { this.appender = appender; } @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { appender.addWarn("WARNINNG, the queue is full, the system will slow down now as logging is a bottleneck"); BlockingQueue<Runnable> queue = executor.getQueue(); try { queue.put(r); } catch (InterruptedException e) { appender.addError("Could not put in queue", e); } } }