2016-05-09 4 views
0

В Java я хочу перехватить мои процессы stdout и stderr. Я не хочу помешать ему перейти в консоль/назначение по умолчанию в конце концов, но на каждой новой строке мне нужно скопировать эту строку в мой собственный файл журнала (с некоторым форматированием и HTML-анализом). Единственный способ, которым я могу это сделать, - это something like this - что может сработать, но я беспокоюсь о разных кодировках, хочу в конечном итоге форматировать вывод так же, как и раньше, вместо того, чтобы подавлять его, и мне нужно обрабатывать его на каждой новой строке , а не тогда, когда он чувствует себя как промывка (даже при автопотоке = true).Java-перехват собственных потоков процесса stdout и stderr

Есть ли какая-нибудь библиотека, которая делает это проще?

ответ

0

но на каждой новой строке мне нужно скопировать эту строку в мой собственный файл журнала (с некоторым форматированием и HTML-анализом).

Почему бы вам не рассмотреть классическую утилиту Unix tee? Демонстрационный:

  1. tail -f source | tee tee.sink
  2. echo "foo" >> source - вы должны увидеть "Foo" также на терминале
  3. cat tee.sink должен отображать foo.

Или я неправильно понял, что вы хотите?

+0

Мне нужно сделать это внутри процесса Java. –

 Смежные вопросы

  • Нет связанных вопросов^_^