WSO2ESB - API 记录所有内容两次

WSO2ESB - API Logging everything twice

我一直在 API 上工作,以测试我在工作项目中参与的平台,在圣诞假期回来后,我注意到它突然将所有内容记录两次并且我不确定为什么 - 如果有人可以提出这个原因以及如何阻止它这样做,那将不胜感激。示例如下。

代码:

<iterate expression="//tests">
    <target>
      <sequence>
        <switch source="//tests/type">
          <case regex="GW">
            <log level="custom">
              <property name="TYPE" value="GW"/>
            </log>
            <send>
              <endpoint>
                <http trace="disable" uri-template="http://localhost:8280/testsuite/node/gw"/>
              </endpoint>
            </send>
          </case>
          <case regex="ESB">
            <log level="custom">
              <property name="TYPE" value="ESB"/>
            </log>
            <send>
              <endpoint>
                <http trace="disable" uri-template="http://localhost:8280/testsuite/node/esb"/>
              </endpoint>
            </send>
          </case>
          <case regex="MB">
            <log level="custom">
              <property name="TYPE" value="MB"/>
            </log>
            <send>
              <endpoint>
                <http trace="disable" uri-template="http://localhost:8280/testsuite/node/mb"/>
              </endpoint>
            </send>
          </case>
          <default>
            <log level="custom">
              <property name="OOPS" value="NODE DOESN'T EXIST"/>
            </log>
          </default>
        </switch>
      </sequence>
    </target>
  </iterate>

日志:

[2016-01-13 09:29:17,331]  INFO -  STRT = STARTING TESTSUITE IN SEQUENCE {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,332]  INFO -  STRT = STARTING TESTSUITE IN SEQUENCE {API_LOGGER.JLRWSO2TestSuiteAPI}
[2016-01-13 09:29:17,334]  INFO -  TYPE = ESB {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,340]  INFO -  STRT = STARTING ESB IN SEQUENCE {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,341]  INFO -  STRT = STARTING ESB IN SEQUENCE {API_LOGGER.testesb}
[2016-01-13 09:29:17,345]  INFO -  STRT = STARTING TESTSUITE OUT SEQUENCE {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,346]  INFO -  STRT = STARTING TESTSUITE OUT SEQUENCE {API_LOGGER.JLRWSO2TestSuiteAPI}
[2016-01-13 09:29:17,346]  INFO -  To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: , SOAPAction: , MessageID: urn:uuid:aafbecb4-c2fd-4d04-a64a-3e4bf1a63e50, Direction: response, Envelope: OK1 {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,347]  INFO -  ENDO = ENDING TESTSUITE OUT SEQUENCE {org.apache.synapse.mediators.builtin.LogMediator}
[2016-01-13 09:29:17,347]  INFO -  ENDO = ENDING TESTSUITE OUT SEQUENCE {API_LOGGER.JLRWSO2TestSuiteAPI}

据我所知,由于我在 API 开发方面的知识和经验有限,日志来自两个不同的来源。我不知道如何停止其中一个,所以它只记录一次,即使我知道如何停止也不知道该停止哪个。

如有任何帮助,我们将不胜感激。

编辑 repository/conf/log4j.properties 并在末尾添加这些行:

log4j.category.org.apache.synapse.mediators.builtin.LogMediator=OFF
log4j.additivity.org.apache.synapse.mediators.builtin.LogMediator=false

您必须重新启动 ESB

通过从 Carbon GUI 控制台将 API_LOGGER.testapi 切换为 False 解决了这个问题。