вы не можете использовать mock так как у вас инстанцирование класса MainLogger происходит прямо в функции endApp(). Что бы это обойти, передавайте MainLogger в конструктор класса содержащего этот метод, и в тестах просто подменяйте на мок.
По поводу exit - тут только если тестами уровня приложения тестить, юнит тесты такое не покрывают. Ну и опять же делать exit внутри какого-то метода не так уж и хорошо.
Либо же приведенный вами код не раскрывает что у вас и как, ибо описание с кодом расходится. Почитайте вообще про S.O.L.I.D. и в частности про Dependency Inversion.