WSO2 API Manager,在哪里可以找到网关日志?

时间:2016-11-17 02:18:00

标签: wso2 wso2-am

如标题,我在哪里可以找到关于api的请求和响应的网关日志?

wso2-apigw-trace.log的文件中,我找不到任何内容。

4 个答案:

答案 0 :(得分:1)

您可以使用这样的appender将synapse wire日志写入单独的文件。

$.each(response['rajaongkir']['results'], function(i, n) {
                var option = '<option value="'+n['province_id']+'">'+n['province']+'</option>'; 
                province += option;
            });
                $(id).append(province); 

答案 1 :(得分:1)

如果要使用相关ID记录请求和响应,可以编写custom sequence。关联ID可以从message_id中获取,例如this

答案 2 :(得分:1)

您还可以通过管理门户中的Log Analyzer UI访问日志。

Here are the instructions关于如何在WSO2 API Cloud(托管版API Manager)中执行此操作。

如果要了解后端调用和日志响应的详细信息,还需要添加可输出数据的中介策略。这可以在API编辑的第二步(“实现”)完成,如下图所示: Message Mediation Policies on the second (Implement) step of the API editing wizard

API Cloud预先安装了这些序列。对于您自己的API Manager部署,您必须手动上传它们。以下是XML文件:

在流程中:

<sequence name="debug_in_flow" xmlns="http://ws.apache.org/ns/synapse">

 <log level="full" />
 <log level="custom">
    <property name="Host" expression="get-property('transport', 'Host')"/>
    <property name="Context" expression="get-property('To')"/>
    <property name="HTTP_METHOD" expression="get-property('axis2', 'HTTP_METHOD')"/>
    <property name="Resource" expression="$axis2:REST_URL_POSTFIX"/>
    <property name="Origin" expression="get-property('transport', 'Origin')"/>
    <property name="Content-Type" expression="get-property('transport', 'Content-Type')"/>
 </log>
</sequence>

Out Flow:

<sequence name="debug_out_flow" xmlns="http://ws.apache.org/ns/synapse">

    <log level="full" />
    <log level="custom">
        <property name="EndPoint" expression="get-property('ENDPOINT_PREFIX')"/>
        <property name="Content-Type" expression="get-property('transport', 'Content-Type')"/>
    </log>

</sequence>

故障流程:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="debug_json_fault">

      <log level="custom">

         <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                   xmlns:ns3="http://org.apache.synapse/xsd"
                   name="ERROR_CODE"
                   expression="get-property('ERROR_CODE')"/>
         <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                   xmlns:ns3="http://org.apache.synapse/xsd"
                   name="ERROR_MESSAGE"
                   expression="get-property('ERROR_MESSAGE')"/>
         <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                   xmlns:ns3="http://org.apache.synapse/xsd"
                   name="ERROR_DETAIL"
                   expression="get-property('ERROR_DETAIL')"/>
         <property xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
                   xmlns:ns3="http://org.apache.synapse/xsd"
               name="ERROR_EXCEPTION"
               expression="get-property('ERROR_EXCEPTION')"/>
     <property name="EndPoint" expression="get-property('ENDPOINT_PREFIX')"/>
     <property name="Content-Type" expression="get-property('transport', 'Content-Type')"/>
  </log>

<payloadFactory>
    <format>
        <am:fault xmlns:am="http://wso2.org/apimanager">
            <am:code>$1</am:code>
            <am:type>Status report</am:type>
            <am:message>Runtime Error</am:message>
            <am:description>$2</am:description>
        </am:fault>
    </format>
    <args>
        <arg expression="$ctx:ERROR_CODE"/>
        <arg expression="$ctx:ERROR_MESSAGE"/>
    </args>
</payloadFactory>
<filter xpath="$ctx:CUSTOM_HTTP_SC">
    <then>
        <property name="HTTP_SC" expression="$ctx:CUSTOM_HTTP_SC" scope="axis2"/>
    </then>
    <else>
        <property name="HTTP_SC" value="500" scope="axis2"/>
    </else>
</filter>
<class name="org.wso2.carbon.apimgt.usage.publisher.APIMgtFaultHandler"/>
<property name="RESPONSE" value="true"/>
<header name="To" action="remove"/>
<property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
<property name="ContentType" scope="axis2" action="remove"/>
<property name="Authorization" scope="transport" action="remove"/>
<property name="Host" scope="transport" action="remove"/>
<property name="Accept" scope="transport" action="remove"/>
<property name="X-JWT-Assertion" scope="transport" action="remove"/>
<property name="messageType" value="application/json" scope="axis2"/>
<send/>
<drop/>

答案 3 :(得分:0)

我认为您可以从http_access_<Date>.log找到这些日志记录 文件路径<APIM Home>/repositary/logs/http_access_<Date>.log