覆盖 Dlog4j.configuration Java 参数

Overwrite Dlog4j.configuration Java argument

我使用的是 Weblogic 服务器,并在服务器启动时设置了 -Dlog4j.configuration 参数,使用已部署应用程序的公共路径。然而,对于一个新的应用程序,我想设置一个不同的路径并忽略这个参数。因此我补充说:

<context-param>
  <param-name>log4jConfig</param-name>
  <param-value>META-INF/log4j.properties</param-value>
</context-param>

到 web.xml 文件,这并没有覆盖我的论点。有没有办法覆盖它?

请记住,log4j.properties(或log4j.xml) 文件需要包含到 Weblogic 类路径中;因此,假设您已将其放入文件夹“C:\Weblogic\user_projects\domains\base_domain\config”,那么您需要将此目录添加到服务器类路径文本项中。

以下 log4j.properties 定义了一个 RollingFileAppender,它会将日志写入您的域根目录:(C:\Weblogic\user_projects\domains\base_domain)

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender

log4j.appender.rollingFile.File=mylog.log

log4j.appender.rollingFile.MaxFileSize=2MB

log4j.appender.rollingFile.MaxBackupIndex=2

log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout

log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n

log4j.rootLogger = INFO, rollingFile

由于 WebLogic Server 不在您的域中加载任何 Log4j 库,最后的努力是将 log4j 包含在 DOMAIN_HOME/lib 子目录中。放置一个 Log4j 实现 (log4j-X.X.X) 和 Weblogic 的 Log4j 库 (wllog4j.jar),它们是服务器分发的一部分。