Если приложение работает не в продакшне, его паузы допустимы, а у потенциального злоумышленника нет сетевого доступа к хосту, стандартный способ отладки – непосредственно
remote debug. Для этого приложение запускается с включенным протоколом удаленной отладки
JDWP. Приложение принимает на указанный порт подключения отладчика. Это может быть отдельная утилита
jdb, или встроенная в IDE.
В JDK поставляется набор
инструментов для мониторинга. Например Java Mission Control и JConsole позволяют подключиться к приложению и посмотреть множество показателей его здоровья. Полный список инструментов специфичен для конкретной JVM, для HotSpot можно посмотреть в
документации.
Вне зависимости от обстоятельств, всегда необходимо заранее позаботиться о диагностической информации номер один –
логах. Как минимум, ни один встроенный инструмент не покажет вам информацию о событиях, определяемых бизнес-логикой вашего приложения. Логироваться должен необходимый минимум, который позволит при любом инциденте понять, что произошло.
В стандартную поставку Java включен пакет для логгирования
java.util.logging, позже остановимся на нём подробнее. Также существует ряд популярных библиотек: Log4j, SLF4J, Logback. Про техники и сложности логгирования современного энтерпрайза есть
неплохой доклад.