Почему выводить логи через System.out.print плохо?
Потому что использование логгеров, в отличии от System.out, позволяет менять уровни логгирования или даже отключать его на лету. А в целом какой-то серьёзной разницы нет.
Да выводить можно как угодно и где угодно.