Tagged: log4j

Говорящие и красночные логи FreeTTS Log4J Appender

Помню как в первый день на работе явистом, я с восторгом запускал огромное энтерпрайз приложение.
Сначала через Putty по SSH конектился к серваку под каким-то стрёмным юниксом, там стартовал кеш сервер, затем подключался к другому серверу где запускал уже бэкенд сервер и затем запускались вью сервера.
Всё это было для меня как запуск какого-то космического корабля: несколько этапов и куча мутного текста в логах, после чего 15 минут и ты на орбите и можно наконец открыть в броузере. Я восхищался крутизной этой системы и собой как её повелителем.

Собственно уже на следующий день меня это уже достало окончательно и я принялся искать пути как проверить свои изменения без полного передеплоя. Разобравшись и поняв что с этим монструозной легаси системой такое не прокатит я выработал традицию запускать систему и сразу же идти за кофе, или открывать хабру. Мда… И уже всё стартануло, но надо же дочитать срачи в каментах!
А потом ещё обнаружить что тупанул и забыл где-то в toString() поставить пробел и опять перезапускать перестиестивать 🙂

Вообщем, эффективность труда и удовольствие от кодинга неумолимо таяли. И я не единственный кто страдал от такой проблемы. Поэтому на многих проектах были свои поделки поверх ClassLoader для хот редеплоя кода. Одна компания даже на такой погремушке бизнес построила.

Сейчас, благодаря TDD, и модульной архитектуры у меня проект стартует уже не 15 минут, но всё равно несколько довольно мучительных минут в течении которых непонятно чем себя занять.
Хабру уже не почитаешь, разве что пару твитов. Я решил просто «откидываться на спинку кресла» и закрывать глаза чтобы отдохнули.
откиньтесь на спинку кресла
Но тут появилась проблема: сервер уже стартанул, но как это увидеть с закрытыми глазами? А если ещё на этапе компиляции произошла ошибка а я с закрытыми глазами ещё пару минут тупить буду?

И тогда я решил что нужно просто озвучивать процесс запуска. Для начала я дописал обычный beep(), но это костыль. Хочется слышать как приложение проходит разные стадии а не только финальный звоночек.
Поскольку звуки на все случаи жизни искать тоже не вариант, то я решил использовать синтезатор речи и подключить его в как обычный апендер логов. Благо это пару строчек кода.
Синтезатор речи для джавы, пускай и слегка заброшенный, но есть.
В результате представляю вам FreeTTS Log4J Appender. Прошу любить и форкать.
Как подключать описано в ридми, но если в двух словах то нужно подключить мой мавеновский репозиторий и прописать его депенденси.