Wildfly 8 лесозаготовки - за развертывания конфигурации для нескольких развертываний не работает
Мне нужно развернуть несколько файлов war на группе серверов в домене wildfly. Когда я развертываю только одно приложение, конфигурация работает отлично, и журналы генерируются, как и ожидалось. Но после развертывания второго файла войны все журналы первого и второго развертывания записываются в файл журнала второго развертывания. Похоже, это ошибка в журнале WildFly для каждого развертывания. Есть предложения?
Я настроил RollingFileAppender внутри log4j.xml.
Конфигурация Журнала: App1
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="logFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${jboss.server.log.dir}/deploy1.log" />
<param name="Append" value="true" />
<param name="Threshold" value="TRACE" />
<param name="MaxFileSize" value="25MB" />
<param name="MaxBackupIndex" value="30" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<logger name="com.akash.deploy1">
<level value="DEBUG" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="logFile" />
</root>
</log4j:configuration>
Конфигурация Журнала: App2
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="logFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${jboss.server.log.dir}/deploy2.log" />
<param name="Append" value="true" />
<param name="Threshold" value="TRACE" />
<param name="MaxFileSize" value="25MB" />
<param name="MaxBackupIndex" value="30" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<logger name="com.akash.deploy2">
<level value="DEBUG" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="logFile" />
</root>
</log4j:configuration>
Конфигурация Домена
<add-logging-api-dependencies value="false"/>
Jboss-deployment-structure
<jboss-deployment-structure>
<deployment>
<exclusions>
<!-- Exclude container version of hibernate. By default its version 4, we want
bundled version 3 loaded -->
<module name="org.hibernate" slot="main" />
<module name="org.hibernate.validator" />
<module name="org.hibernate.validator.cdi" slot="main" />
</exclusions>
<dependencies>
<module name="org.apache.commons.logging" />
<module name="org.apache.commons.collections" />
<module name="org.dom4j" />
<module name="org.apache.log4j" />
<module name="org.slf4j" />
<module name="org.apache.camel" />
<module name="org.springframework" />
<module name="org.hibernate" slot="3.6.10" />
<module name="net.sf.ehcache" />
<module name="org.jboss.as.jmx" />
<module name="org.apache.xerces" />
<module name="asm.asm" />
<module name="org.jboss.msc" />
<module name="org.wildfly.clustering.singleton" />
<module name="org.jboss.as.server" />
<module name="com.oracle.ojdbc7" />
<module name="org.wildfly.clustering.server"/>
</dependencies>
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
1 ответ:
Ведение журнала для каждого развертывания работает на основе контекста журнала. Поскольку вы исключаете подсистему ведения журнала в вашем
jboss-deployment-structure.xml
, один и тот же контекст журнала используется для обоих развертываний.Чтобы заставить это работать, как вы ожидаете, вам нужно установить
add-logging-api-dependencies
обратно вtrue
. В CLI:/profile=default/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=true)
Затем в вашем
jboss-deployment-structure.xml
Удалите исключение подсистемы ведения журнала. Вы также можете удалить 3 журналирования, так как они должны быть добавлены автоматически.<jboss-deployment-structure> <deployment> <exclusions> <!-- Exclude container version of hibernate. By default its version 4, we want bundled version 3 loaded --> <module name="org.hibernate" slot="main" /> <module name="org.hibernate.validator" /> <module name="org.hibernate.validator.cdi" slot="main" /> </exclusions> <dependencies> <module name="org.apache.commons.collections" /> <module name="org.dom4j" /> <module name="org.apache.camel" /> <module name="org.springframework" /> <module name="org.hibernate" slot="3.6.10" /> <module name="net.sf.ehcache" /> <module name="org.jboss.as.jmx" /> <module name="org.apache.xerces" /> <module name="asm.asm" /> <module name="org.jboss.msc" /> <module name="org.wildfly.clustering.singleton" /> <module name="org.jboss.as.server" /> <module name="com.oracle.ojdbc7" /> <module name="org.wildfly.clustering.server"/> </dependencies> </deployment> </jboss-deployment-structure>
Некоторые из этих зависимостей модулей ты тоже выглядишь немного подозрительно. Я не знаю, зачем тебе это нужно.
org.jboss.as.jmx
,org.jboss.msc
,org.wildfly.clustering.singleton
,org.jboss.as.server
илиorg.wildfly.clusttering.server
.