Добавьте в качестве первого кода следующее:
Properties prop = new Properties();
prop.setProperty("log4j.rootLogger", "WARN");
PropertyConfigurator.configure(prop);
Не уверенный, если это является "лучшим", но у Вас есть хороший пример , Круговой Байт буферизует здесь .
Они Java Utilities - классы OstermillerUtils находятся под лицензия .
GPL, Этот Круговой Буфер Байта реализует модель производителя/потребителя кольцевого буфера для байтов. Заполнение и освобождение буфера сделаны со стандартным Java InputStreams и OutputStreams.
Используя этот класс более простая альтернатива использованию PipedInputStream и PipedOutputStream.
PipedInputStreams и PipedOutputStreams не поддерживают операцию метки, не позволяйте Вам управлять буферными размерами, которые они используют и имеют более сложный API, который требует инстанцирования двух классов и соединения их.
Я использую java.util.ArrayDeque
в проекте с аналогичными требованиями. Обратите внимание, что вы можете легко изменить реализацию, используя java.util.concurrent Queue
реализация.
Другое решение - использовать GrowablePipedOutputStream и GrowablePipedInputStream от JBoss.