Чтобы написать индикатор выполнения или любой текст для обновления на консоль, просто завершите вывод с помощью \r
(возврат каретки) вместо \n
(новая строка), чтобы следующая строка перезаписывала его. Это question более подробно. Библиотека F-ANSI позволяет легко генерировать приятный внешний вид консоли, включая перезапись предыдущей строки.
Но если вы настроены на использование рамки ведения журнала, это не только невозможно, но и не то, что вы хотите. Как подсказывает ChrisM, правильный путь к log Прогресс заключается в том, чтобы каждый раз регистрировать новую строку с процентом, сделанным до сих пор. Таким образом, вы можете видеть, что делает ваша программа и насколько далеко она находится в контексте.
Похоже, что вы хотите сделать это, это отделить ваше ведение журнала от фактического вывода вашей программы (это вообще хорошая идея, даже не учитывая проблему с индикатором выполнения). Используйте свою структуру ведения журнала для регистрации информации о выполнении программы; вещи, которые вас или кто-то отлаживает. Вывод фактической программы должен быть записан непосредственно на stdout
через System.out
.
Затем вы можете самостоятельно решить, что вы хотите делать с ведением журнала. Его также можно записать в stdout
, и ваши журналы и выходные данные могут жить вместе, но лучше было бы написать stderr
(что упрощает перенаправление) или в файл журнала (что делает вашу программу более чистой и сохраняет ваши журналы для справки позже).
Кроме того, если Java не является обязательным условием команды pv
обеспечивает мощный, настраиваемый индикатор на основе объеме данных, водопроводных через него.
Я не понимаю вопроса. Как бы вы отображали индикатор выполнения в записи журнала? Если вы уже знаете прогресс, почему бы не напечатать xx%? – ChrisM