package project.log.internal; import java.util.concurrent.ConcurrentLinkedQueue; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.Assert; import project.log.AbstractLog; public class AbstractLogQueue { private static final Logger logger = LoggerFactory.getLogger(AbstractLogQueue.class); private static ConcurrentLinkedQueue WORKING_EVENTS = new ConcurrentLinkedQueue(); public static void add(AbstractLog item) { Assert.notNull(item, "The item must not be null."); try { WORKING_EVENTS.add(item); } catch (Throwable e) { logger.error("add(AbstractLog item) fail : ", e); } } public static int size() { return WORKING_EVENTS.size(); } public static AbstractLog poll() { AbstractLog item = null; try { item = WORKING_EVENTS.poll(); } catch (Throwable e) { logger.error("AbstractLog poll() fail : ", e); } return item; } }