Без большого количества подробностей о вашей среде сложно дать конкретный ответ, но если бы я настраивал ведение журнала для обработки нескольких сред, вот подход, который я бы выбрал.
1) Приложения не должны заботиться о регистрации. Например, следующее должно работать во всех средах:
logger.warn("message", error);
2) Создайте конфигурацию log4j (или любую другую структуру ведения журнала) для настройки ведения журнала. Это можно сделать одним из двух способов. Первый способ - создать test_log4j. {Xml, properties}, prod_log4j. {Xml, properties} и т. Д. Для каждой среды. Это делает настройку для каждой среды очень простой, а добавить новую среду - просто добавить новый файл. Альтернативой является создание одного log4j. {Xml, properties} и использование замены свойства стиля ant для вставки соответствующих значений для каждой среды. Значения свойств могут быть получены из файлов свойств среды или из аргументов -Dkey = value, передаваемых в JVM. Это больше стиль СУХОЙ конфигурации, предполагающий, что конфигурация для каждой среды очень похожа. В качестве примера для изменения уровня ведения журнала между средами:
<logger name="my.example">
<level value="${my.example.level}"/>
</logger>
3) Создайте сценарий запуска, который определяет среду (возможно, на основе компьютера или какого-либо файла на компьютере), а затем загружает правильную конфигурацию. Это может быть либо правильная конфигурация log4j, либо правильные файлы свойств, либо правильные аргументы -Dkey = value.