weblogic 上的 EAR 应用程序在集群环境 (log4j) 中不产生任何输出

EAR app on weblogic produces no output in a clustered environement (log4j)

我有一个部署在 weblogic 上的 EAR(由 WAR 和 EJB JAR 组成),并且在此 EAR 中配置了 log4j。

当我在单个服务器中部署我的 EAR 时,日志已正确生成,我可以在我的域的根目录中看到它。

当我将 EAR 部署到集群环境(有两台服务器)时,我在数据库中看到发生了更改,并且我可以与 WAR 中包含的 Web 服务进行交互,但没有日志文件未创建也未更新。

这是我的 log4j.xml 配置文件。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="MYLOGFILE"
        class="org.apache.log4j.RollingFileAppender">
        <param name="threshold" value="debug" />
        <param name="File" value="MYLOG.log" />
        <param name="Append" value="true" />
        <param name="MaxFileSize" value="2MB" />
        <param name="MaxBackupIndex" value="80" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{dd/MM/yyyy HH:mm:ss,SSS} (%3X{IdThread}) [%X{IdDem}] %-5p %-15c{1}: %m%n" />
        </layout>
    </appender>


    <root>
        <priority value="debug" />
        <appender-ref ref="MYLOGFILE" />
    </root>

</log4j:configuration>

我还尝试将文件名更改为:<param name="File" value="MYLOG_${weblogic.Name}.log" /> 这样我就可以为每个服务器实例设置不同的日志文件,但它不会改变任何内容。我也试过这个:<param name="File" value="C:\MYLOG_${weblogic.Name}.log" />,但仍然没有日志文件。

有什么帮助吗?

谢谢。

实际上,我部署到的集群中的两台服务器分配了一台机器(当它们安装在本地时)。

所以我只是去了 weblogic 管理控制台 -> 环境 -> 服务器,然后我选择了每个服务器(在我关闭它之后)并且我只是将 Configuration -> General -> MachineMyMachine 更改为 none.

重新启动服务器后,日志文件出现在正确的位置。