【问题标题】:MessageLogging Policy or new JavaScript fileMessageLogging 策略或新的 JavaScript 文件
【发布时间】:2020-03-07 01:41:05
【问题描述】:

我正在尝试实施 Apigee 日志记录来记录多个属性,例如客户端 IP、总处理延迟和其他要从请求和响应中检索的自定义标头。它们分为 BaseLog 属性、SysLog 属性和 AppLog 属性,后者中的每一个都写在 BaseLog 之上。我想知道记录这些的最佳方法是什么 - 使用 MessageLogging Policy 或使用自定义 JS 代码来提取和填充变量会更好吗?

最后,我必须将日志发送到 Splunk 服务器。怎么做呢?

任何输入都会有所帮助!谢谢。

【问题讨论】:

    标签: javascript logging apigee


    【解决方案1】:

    我使用 JavaScript Policy 来设置变量,我想通过 context.setVariable("variableName", value); 将它们写入日志文件(例如 requestDateTime、ip 等)

    然后在 MessageLogging Policy 中引用这些变量,例如

    <Message>{requestDateTime}|{client.ip}|{request.content}|{elapsTime}</Message> 
    

    实际上,Apigee 有很多有用的变量,如果您不想在流程中添加更多 JS 策略,可以直接使用它,但对于我的情况,我想在我的日志中写很多值,其中一些必须与其他变量连接,以便在 MessageLogging 中引用之前轻松设置它。

    不过,我只是分享一下我使用的方法。

    希望对你有用。

    【讨论】:

      【解决方案2】:

      最好尽量减少 JavaScript 或任何其他扩展策略的使用,因为每次执行这些扩展策略时都会在消息处理器中生成一个线程,因此存在死锁风险,因为线程池始终存在限制。

      Apigee 专门为异步方式的日志记录提供了消息日志记录策略,因此您应该尝试在 Post 客户端流程中设置所有内容,并尝试对任何类型的变量分配使用分配消息策略而不是扩展策略。

      希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 2011-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-04
        • 2018-08-14
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多