Пользовательское имя файла журнала в муле с использованием log4j

Я пытаюсь изменить имя файла журнала, сгенерированного мулом, изменив log4j.xml, чтобы иметь соответствующее приложение.

Вот фрагмент из log4j.xml

 <RollingFile name="Rolling-Async-Perf" fileName="/usr/local/mule/logs/${app_name}.log"
            filePattern="./logs/${date:yyyy-MM}/perf-%d{yyyy-MM-dd}-%i.log.gz"  immediateFlush="false">

Вот как я устанавливаю значение application_name в классе, который загружает свойства, связанные с log4j.xml.

System.setProperty("app_name", "AppName");

Однако сгенерированный файл имеет имя ${app_name}.log, а не AppName.log.

Любые мысли о том, как я могу заставить мула подобрать имя файла на основе пользовательского свойства в муле?


person seeker    schedule 25.08.2015    source источник


Ответы (1)


Два варианта:

1) добавьте свойство в файл MULE_HOME/conf/wrapper.conf, например:

wrapper.java.additional.15=-Dapp_name=AppName

или 2) внутри элемента конфигурации вашего файла log4j2.xml пример здесь:

<Properties>
  <Property name="app_name">AppName</Property>
</Properties>
person Gabriel Dimech    schedule 25.08.2015
comment
В настоящее время я делаю это, и это не работает для меня. У меня есть несколько приложений в одном контейнере мулов с одним файлом wrapper.conf и одним файлом log4j.xml. По этой причине я хочу динамически вводить app-name. - person seeker; 26.08.2015
comment
что не работает? разве вы не можете добавлять переменную для каждого приложения при каждом развертывании? - person Gabriel Dimech; 26.08.2015
comment
Все сервисы будут развернуты одновременно. С точки зрения примера. Допустим, есть 3 приложения с именами appA,appB,appC. И я хотел, чтобы логи от appA шли к appA.log , appB-›appB.logи т.д. Какое значение я должен указать в wrapper.conf или в log4j2.xml вместо AppName? Так как на контейнере есть только ОДИН из них. - person seeker; 26.08.2015