Персонализирано име на регистрационен файл в mule с помощта на log4j

Опитвам се да променя името на регистрационния файл, генерирано от mule, като модифицирам 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.

Някакви мисли за това как мога да накарам mule да вземе името на файла въз основа на персонализираното свойство в mule?


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


Отговори (1)


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

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

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

или 2) вътре в елемента Configuration на вашия файл 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