2016-07-19 14 views
0

У меня есть два EAR, развернутых в Websphere 8.5.3 с разными конфигурациями log4j. Но сервер генерирует только один файл журнала. Если я разворачиваю EAR отдельно, сервер генерирует файл журнала, но при развертывании обоих EAR на сервере генерируется только один файл журнала. У меня есть slf4j-log4j jars на пути класса и один lo4j.properties в каждом модуле WAR EAR. Может кто-нибудь, пожалуйста, помогите мне понять, что происходит с Websphere JVM или, если я делаю что-то неправильноWebsphere 8.5.3, SLF4j Log4j, Несколько EAR, несколько файлов журналов, не генерирующих

log4j.rootLogger=INFO 
log4j.logger.com.code.first=INFO,appOne 
log4j.appender.appOne=org.apache.log4j.RollingFileAppender 
log4j.appender.appOne.Name=ApplicationLogAppender 
log4j.appender.appOne.File=/logPath/AppOneLog.log 
log4j.appender.appOne.layout=org.apache.log4j.PatternLayout 
log4j.appender.appOne.MaxFileSize=10MB 
log4j.appender.appOne.MaxBackupIndex=10 
log4j.appender.appOne.layout.ConversionPattern=%d %-5p %t - %m%n 
log4j.appender.appOne.Threshold=DEBUG 
log4j.appender.appOne.Append=false 


log4j.rootLogger=INFO 
log4j.logger.com.code.second=INFO,appTwo 
log4j.appender.appTwo=org.apache.log4j.RollingFileAppender 
log4j.appender.appTwo.Name=ApplicationLogAppender 
log4j.appender.appTwo.File=/logPath/AppTwolog.log 
log4j.appender.appTwo.layout=org.apache.log4j.PatternLayout 
log4j.appender.appTwo.MaxFileSize=10MB 
log4j.appender.appTwo.MaxBackupIndex=10 
log4j.appender.appTwo.layout.ConversionPattern=%d %-5p %t - %m%n 
log4j.appender.appTwo.Threshold=DEBUG 
log4j.appender.appTwo.Append=false 

ответ

0

Это:

У меня есть SLF4J-log4j банки на пути к классу

Означает ли это, что один и тот же log4j JAR разделяется между приложениями? Может возникнуть проблема, что классы log4j загружаются только один раз и распределяются между приложениями. Можете ли вы попробовать разместить log4j JAR в каждой папке WEB-INF/lib веб-модуля? Это даст каждому из веб-модулей собственную нагрузку классов log4j и может решить проблему. (Кроме того, поскольку классы log4j также используются сервером, убедитесь, что есть классы веб-модули нагрузки от себя первым.)

Томас Bitonti, IBM WebSphere Application Development Сервер

+0

Спасибо за ответы. Да. Я удалил зависимости maven. Каждый веб-модуль имеет банки в папке WeB-INF/lib. Кроме того, я явно задал предпочтения загрузки классов, поскольку родительский последний для модулей WAR – RaajM

+0

Остается ли проблема с изменениями или была решена? –

+0

Если проблема все еще возникает, вы можете отобразить загрузчик классов, который использовался для загрузки классов регистратора: Logger logger = getSomeLogger(); System.out.println («Logger [" + logger + "] ClassLoader [" + logger.getClass(). GetClassLoader() + "]"); –