Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2 API管理器,在哪里可以找到网关日志?_Wso2_Wso2 Am - Fatal编程技术网

WSO2 API管理器,在哪里可以找到网关日志?

WSO2 API管理器,在哪里可以找到网关日志?,wso2,wso2-am,Wso2,Wso2 Am,例如标题,我在哪里可以找到网关日志,它只涉及api的请求和响应 在wso2 apigw trace.log文件中,我什么也找不到。我想你可以从http\u access\ugw.log 文件路径:/repositary/logs/http\u access.log您可以使用如下附件将synapse wire日志写入单独的文件 # WIRE_LOGFILE is set to be a DailyRollingFileAppender using a PatternLayout. log4j.ap

例如标题,我在哪里可以找到网关日志,它只涉及api的请求和响应


wso2 apigw trace.log文件中,我什么也找不到。

我想你可以从
http\u access\ugw.log

文件路径
/repositary/logs/http\u access.log
您可以使用如下附件将synapse wire日志写入单独的文件

# WIRE_LOGFILE is set to be a DailyRollingFileAppender using a PatternLayout.
log4j.appender.WIRE_LOGFILE=org.wso2.carbon.utils.logging.appenders.CarbonDailyRollingFileAppender
log4j.appender.WIRE_LOGFILE.File=${carbon.home}/repository/logs/${instance.log}/wso2wire${instance.log}.log
log4j.appender.WIRE_LOGFILE.Append=true
log4j.appender.WIRE_LOGFILE.layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout
log4j.appender.WIRE_LOGFILE.layout.ConversionPattern=TID: [%T] [%S] [%d] %P%5p {%c} - %x %m {%c}%n
log4j.appender.WIRE_LOGFILE.layout.TenantPattern=%U%@%D [%T] [%S]
log4j.appender.WIRE_LOGFILE.threshold=DEBUG
log4j.logger.org.apache.synapse.transport.http.wire=DEBUG, WIRE_LOGFILE
log4j.additivity.org.apache.synapse.transport.http.wire=false

如果要使用相关id记录请求和响应,可以编写一个日志。相关id可以从消息中获取,如。

您还可以通过管理门户中的日志分析器UI访问日志

关于如何在(API管理器的托管版本)中执行此操作

如果希望在日志中包含对后端的调用和响应的详细信息,还需要添加将输出数据的中介策略。这可以在API编辑的第二步(“实现”)中完成,如下图所示:

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>

流出:

<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/>

$1
状态报告
运行时错误
$2

它是否存储在DB中?但是我也找不到。谢谢,巴西亚。当我调用大量API时,如何确认日志属于哪个API。我怎样才能获得org.wso2.carbon.apimgt.gateway.handlers.logging的日志呢
由于wire日志会打印请求和响应的多行,所以你真的不能按照API将所有内容都分组在一起。要启用处理程序调试日志,你可以设置
log4j.logger.org.wso2.carbon.apimgt.gateway.handlers=debug
谢谢,JeewanaSL。在
http_access_uuu.log
文件中,该文件的日志太多,并且没有响应datathx,Bhathiya。配置id后,我可以在哪个日志文件中找到该消息?
如果您需要记录任何需要使用日志中介器的内容,我会将其添加到
/repository/deployment/server/synapse configs/default/WSO2AM--Ext--In.xml