Настройка ротации логов в сервисе mule для ConnectALL ESB

Столкнулся давеча с одной проблемой, что логи:

А) не сохраняются;

Б) не архивятся.

Более того, логи имеют свойство забивать все возможное дисковое пространство.

Полез искать информацию, перелопатил кучу мануалов, но в итоге нашел решение.

Mule в ConnectALL использует для логирования apache log4j2.

Для ротации логов, производитель предлагает вот такую конфигу:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
 <Property name="app.version">2.6-SNAPSHOT</Property>
 <Property name="filename">mule-app-ConnectAll-${app.version}</Property>
 <Property name="log.file">${env:MULE_HOME}/logs/${filename}.log</Property>
 <Property name="rolling.file">${env:MULE_HOME}/logs/${filename}-%i.log.gz</Property>
 </Properties>
 
 <Appenders>
 <!-- Appender to write the logs on Standard Output -->
 <Console name="Console" target="SYSTEM_OUT">
 <PatternLayout pattern="%-5p %d [%t] %c: %m%n" />
 </Console>
<!-- Appender to write logs in a file, and will rolled based on date and 
 size -->
 <RollingFile name="RollingFile" fileName="${log.file}"
 filePattern="${rolling.file}">
 <PatternLayout pattern="%-5p %d [%t] %c: %m%n" />
 <Policies>
 <SizeBasedTriggeringPolicy size="250MB" />
 </Policies>
 <DefaultRolloverStrategy max="5"/>
 </RollingFile>
 </Appenders>
<Loggers>
<AsyncLogger name="com.gigaspaces" level="WARN" />
 <AsyncLogger name="com.j_spaces" level="WARN" />
 <AsyncLogger name="com.sun.jini" level="WARN" />
 <AsyncLogger name="net.jini" level="WARN" />
 <AsyncLogger name="org.apache.cxf" level="WARN" />
 <AsyncLogger name="org.apache" level="WARN" />
 <AsyncLogger name="org.springframework.beans.factory" level="WARN" />
 <AsyncLogger name="org.mule" level="WARN" />
 <AsyncLogger name="com.mulesoft" level="WARN" />
 <AsyncLogger name="com.microsoft.tfs" level="ERROR" />
 <AsyncLogger name="org.apache.commons.httpclient.HttpMethodBase" level="ERROR" />
 <AsyncLogger name="org.apache.wink.common.internal.application.ApplicationValidator" level="ERROR" />
 <AsyncLogger name="org.mule.routing.CollectionSplitter" level="ERROR" />
 <AsyncLogger name="org.apache.wink.common.internal.application.ApplicationValidator" level="ERROR" />
 <AsyncLogger name="org.apache.wink.common.internal.registry.metadata.ProviderMetadataCollector" level="ERROR" />
<Root level="INFO">
 <AppenderRef ref="RollingFile" />
 <AppenderRef ref="Console" />
 </Root>
 </Loggers>
</Configuration>

Последовательность следующая:

  1. Останавливаем сервис mule
  2. Идем в %MULE_HOME%\apps\ConnectAll-2.xxxx\classes
  3. Открываем в notepad log4j2.xml
  4. Вставляем конфигу, правим необходимые параметры, отключаем ненужные логгеры
  5. Сохраняем
  6. Запускаем сервисы

К слову, все это есть на сайте производителя, одна проблема, ни в одном браузере именно конфиги не открываются, хз почему. Пришлось выдирать из кода.

Leave a Reply