我正在开发部署在 WebLogic 10.3 上的应用程序。它被打包为 EAR 并包含一个模块。该应用程序本身运行良好,但我面临与日志记录相关的问题。
我正在使用 Log4j。该库包含在 EAR 文件中,并且 log4j.xml 放在 JAR 模块下。所以配置位置如下:
A.ear/B.jar/log4j.xml
Log4j 配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CA" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd-MMM-yyyy-HH:mm:ss} %p %C{1} - %m%n" />
</layout>
</appender>
<appender name="DRFA" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file"
value="servers/AdminServer/logs/EJB.log" />
<param name="Append" value="true" />
<param name="DatePattern" value="'-'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd-MMM-yyyy-HH:mm:ss} %p %C{1} - %m%n" />
</layout>
</appender>
<logger name="com.companyname.ejb" additivity="false">
<level value="DEBUG" />
<appender-ref ref="DRFA" />
<appender-ref ref="CA" />
</logger>
<logger name="com.companyname.results" additivity="false">
<level value="DEBUG" />
<appender-ref ref="DRFA" />
<appender-ref ref="CA" />
</logger>
<logger name="com.companyname.marketdata" additivity="false">
<level value="DEBUG" />
<appender-ref ref="DRFA" />
<appender-ref ref="CA" />
</logger>
<root>
<level value="DEBUG" />
<appender-ref ref="CA" />
</root>
当我构建和部署 EAR(使用 Maven 和定制的 WebLogic 插件)并调用应用程序时,没有出现日志文件。但是如果我重新启动 WebLogic 一切都很好。
WebLogic 在 Windows 7 下以单节点域模式运行。
我想知道是否有某种方法可以在不重启 weblogic 的情况下显示日志(因为它可能会导致生产环境出现问题)?
更新:另外我想知道这种行为的原因是什么(即为什么在应用程序部署后没有立即创建日志文件)?这是 Weblogic、log4j 还是它们的耦合问题?我试图在 Oracle 文档中找到答案,但现在没有运气。