在将 Spring 应用程序部署到 WebSphere 时,我遇到了日志记录问题。我将 Spring 4.1.6 用于以下依赖项:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
对于日志记录,我使用以下内容:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
在我的 web.xml 中,我已配置为从外部 *.properties 文件读取 log4j 配置:
<!-- context params -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>file:${APP_CFG}/test-api/log4j.properties</param-value>
</context-param>
<!-- listeners -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
我向 WebSphere“APP_CFG”添加了一个环境变量以指向我存储 log4j.properties 文件的目录。
log4j.properties 的内容如下:
log4j.rootLogger=DEBUG, stdout, logfile
log4j.logger.com.test=DEBUG, stdout, logfile
log4j.additivity.com.test=false
log4j.logger.org.springframework=DEBUG, logfile
log4j.additivity.org.springframework=false
log4j.logger.org.springframework.security=DEBUG, logfile
log4j.additivity.springframework.security =false
log4j.logger.org.springframework.jdbc.core.StatementCreatorUtils=TRACE
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=D:/var/log/app/test-app/test-app.log
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
当服务器启动时,会创建日志文件,但没有写入任何内容,它始终保持为空,知道在其他环境(Tomcat、JBoss 等...)上,同一应用程序的日志记录正在正常进行,并且日志文件按预期填充。
请告知可能导致问题的原因。也许缺少特定于 WebSphere 的配置?
先谢谢你, 问候,