Настройка ротации логов в сервисе 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>
Последовательность следующая:
- Останавливаем сервис mule
- Идем в
%MULE_HOME%\apps\ConnectAll-2.xxxx\classes
- Открываем в notepad
log4j2.xml
- Вставляем конфигу, правим необходимые параметры, отключаем ненужные логгеры
- Сохраняем
- Запускаем сервисы
К слову, все это есть на сайте производителя, одна проблема, ни в одном браузере именно конфиги не открываются, хз почему. Пришлось выдирать из кода.