Having the logger function potentially throw exceptions is Heisenbuggy.
This also gets rid of --log-type, since the nested log type isn't useful in a multi-threaded situation, and nobody cares about the "pretty" log type.