Я создаю приложение Portlet, развернутое на сервере WebSphere Portal Server, работающем в Linux. Каждый портлет WAR использует Log4j для ведения журнала с такой конфигурацией, каждый из которых содержит два файла журнала WAR:
log4j.logger.im.the.package=DEBUG, InfoAppender, DebugAppender
log4j.appender.InfoAppender=org.apache.log4j.RollingFileAppender
log4j.appender.InfoAppender.Threshold=INFO
log4j.appender.InfoAppender.File=/tmp/infoWARName.log
log4j.appender.InfoAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.InfoAppender.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.DebugAppender=org.apache.log4j.RollingFileAppender
log4j.appender.DebugAppender.Threshold=DEBUG
log4j.appender.DebugAppender.File=/tmp/debugWARName.log
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.DebugAppender.layout.ConversionPattern=%d %p [%c] - %m%n
После развертывания все работает, как чам и файлы журналов начали заполняться. Через несколько часов и в то же время остановка ведения журнала и info.log
и debug.log
вообще не обновляются. Нам нужно перераспределить WAR-сервер Portlet на сервере, чтобы возобновить ведение журнала.
Любые идеи?
Update:
Я начинаю подозревать, что это связано с моей Logging JARS. В настоящее время это JAR внутри моей папки WEB-INF/lib
:
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
com.springsource.slf4j.api-1.5.6.jar
slf4j-log4j12-1.5.6.jar
Второе обновление:
В часах от щедрости до конца, это то, как Log4j настроен в каждом приложении Portlet. Здесь web.xml
:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:miAppLog4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
И miAppLog4j.properties
файл находится в папке, внешней по отношению к WAR и Portal. Мы сделали его доступным в Portlet Classpath через общую библиотеку в WebSphere Portal.