Вы задаете два отдельных вопроса (ну, по крайней мере, для Tomcat 7 вы задаете два отдельных вопроса).
Log4j2 поддерживает веб-приложение, поэтому его можно настроить по-разному в каждом веб-приложении.
И хотя вы не можете иметь разные системные свойства для каждого веб-приложения (поскольку по своей природе система означает глобальные), вы можете иметь разные доступные программисту свойства для каждого веб-приложения, но не системные свойства.
С Tomcat 7, настроенным на соответствие спецификации Servlet 3.0, вы можете создать свой собственный ServletContainerInitializer, настроить этот инициализатор так, чтобы он инициализировался в первую очередь, перед всеми другими инициализаторами, а затем в этом инициализаторе вы можете считывать настройки из файла, DB или что-то еще и «припарковать» их в коллекции атрибутов ServletContext.Как правило, ваш инициализатор проверяет систему, на которой работает, и устанавливает атрибуты в зависимости от того, что он обнаруживает.Нет смысла читать их из файла, так как вы можете просто оставить их в web.xml.Затем код в вашем веб-приложении может извлечь настройки из уникального экземпляра веб-приложения из коллекции атрибутов его ServletContext.Это позволяет уникально настраивать каждое веб-приложение или каждый экземпляр одного и того же веб-приложения.