Thanks for the patch. There are some compile time errors. Few comments -
1. Each log4j statement using the helper APIs in Logging.scala should be of the form ("error message", cause). Let's fix that.
2. Inside the while loop, catching throwable will also catching all Exceptions, so we only need to catch Throwable and exit. This is because, in the migration tool case, only a Kafka bug will throw an exception. In other cases, we might know the exact type of exception that is data dependent and expected, so it makes sense to catch those separately.