Ответ 1
Невозможно и не рекомендуется.
В первом примере ясно, что существуют два оператора журнала, тогда как во втором примере можно с первого взгляда предположить, что их четыре.
Один оператор журнала должен предоставить единую исходную информацию о том, что произошло и когда это произошло, и эта информация должна быть каким-то образом полезной.
Представьте, если у вас есть один оператор ошибки, такой как исключение, которое будет охватывать 30 или около того строк из-за его трассировки стека. Это будет выглядеть 30 ошибок в вашем случае, и автоматизированный инструмент может также сообщить об этом как о 30 ошибках. Это дезинформация и ее следует избегать.
Не говоря уже о том, что "один оператор журнала!= один письменный журнал" может привести к хаосу синхронизации, когда вы имеете дело с более сложными ситуациями в журнале, при одновременном одновременном использовании нескольких потоков в одном файле или, что еще хуже, нескольких JVM поэтому.
Если значение "слишком далеко слева" дает вам много горя, я бы предложил сделать некоторую пост-обработку в сгенерированном файле журнала, например, добавить 8 пробелов или около того в начале каждой строки, которая не содержит [DEBUG], [INFO],...