package alma.acs.logging; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Future; import java.util.logging.LogRecord; /** * Test log queue that allows verification of calls to <code>log</code> and <code>flush</code>. * <p> * Actually this class does not support any of the special features of DispatchingLogQueue. * It will not even forward the log record to it. * It only extends DispatchingLogQueue because AcsLoggingHandler requires a DispatchingLogQueue in the ctor * and I see no big advantage in refactoring this. */ class TestLogQueue extends DispatchingLogQueue { public int nFlush; public List<LogRecord> logRecords; TestLogQueue() { logRecords = new ArrayList<LogRecord>(); reset(); } void reset() { nFlush = 0; logRecords.clear(); } Future<Boolean> flush() { nFlush++; return super.flush(); } synchronized boolean log(LogRecord logRecord) { logRecords.add(logRecord); // System.out.println("remote log: " + logRecord.getMessage()); return true; } }