WSO2中的日志配置

时间:2017-10-17 07:07:11

标签: wso2 wso2-am

所以我正在开发WSO2中的PER-API日志配置,为了记录API调用的REQUEST / RESPONSE,我们需要

  1. 修改<中的 log4j.properties 文件APIM HOME> \ repository \ conf通过添加以下行来
  2.   

    log4j.appender.TestAPI_APPENDER = org.apache.log4j.RollingFileAppender进行   log4j.appender.TestAPI_APPENDER.File = $ {carbon.home} /库/日志/ PerAPI / $ {instance.log} / WSO2-APILogs服务$ {instance.log}的.log   log4j.appender.TestAPI_APPENDER.MaxFileSize = 1000KB   log4j.appender.TestAPI_APPENDER.MaxBackupIndex = 10   log4j.appender.TestAPI_APPENDER.layout = org.apache.log4j.PatternLayout   log4j.appender.TestAPI_APPENDER.layout.ConversionPattern =%d {ISO8601}   [%X {ip} - %X {host}] [%t]%5p%c {1}%m%n%n   log4j.category.API_LOGGER.admin - APINAME = TRACE,   TestAPI_APPENDER

    1. 它将以下详细信息记录到一个非常全面且很酷的.txt文件中
    2. enter image description here

      然而,我确实有一些问题,我会陷入其中并希望得到帮助,这里是他们

      • 此处未记录响应的HTTP状态代码,我非常需要,我看了here并说它使用%s - 响应的HTTP状态代码但是当我将字符%s 放在log4j.properties ConversionPattern中时,这些字符按原样打印,我该如何实现?
      • 其次,为了可视化这些自定义日志,wso2是否有某种门户网站?
      • 第三,我需要在请求/响应(每个API CALL 4个条目)日志行的末尾添加一行,我无法找到任何解决方案,如果我将一行代码硬编码到log4j.properties ConversionPattern,i假设它会在每次输入后打印,请帮忙吗?!

      谢谢

2 个答案:

答案 0 :(得分:1)

请为您的问题找到以下答案

通过启用有线日志设置,您可以轻松跟踪响应的HTTP状态代码。您可以通过取消注释log4j.properties文件中的以下行来启用标头和wirelogs(位于:\ repository \ conf

<sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--TwitterSearch:v1.0.0--In">
<log level="custom">
            <property name="test" value="your value goes here……….” />
  </log> 
</sequence>

第三个问题,你可以通过在顺序中使用log mediator(在请求中打印一行)和out-sequence(在响应中打印一行)来实现这一点。例如,你可以在api synapse中使用自定义日志配置文件如下(这里我依次使用这个自定义登录)

SELECT refno
    , COUNT(1) AS cnt
FROM (
    SELECT DISTINCT u.lname
        , r.refno
        , u.dob
    FROM @record r
    INNER JOIN @user u ON u.id = r.fk
) AS t
GROUP BY refno
HAVING COUNT(1) > 1;

答案 1 :(得分:0)

  • 您可以启用wirelog来跟踪API调用时的请求和响应。要在log4j.properties文件中取消注释,请执行此操作。

    log4j.logger.org.apache.synapse.transport.http.wire = DEBUG

此外,如果您想记录http消息,您也可以取消注释以下行。

log4j.logger.org.apache.synapse.transport.http.headers=DEBUG