猿问

MessageLogging 政策或新的 JavaScript 文件

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

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

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


翻翻过去那场雪
浏览 195回答 2
2回答

莫回无

我使用JavaScript 策略来设置我想在日志文件中写入的变量(例如 requestDateTime、ip 等),方法是使用context.setVariable("variableName", value);然后在MessageLogging Policy 中引用这些变量,例如<Message>{requestDateTime}|{client.ip}|{request.content}|{elapsTime}</Message>实际上,Apigee 有很多有用的变量,如果您不想在流程中添加更多 JS 策略,可以直接使用它,但对于我的情况,我想在日志中写入很多值,其中一些必须连接使用其他变量,因此在 MessageLogging 中引用之前很容易设置它。但是,我只是分享我使用的方法。希望对你有用。

冉冉说

尽量减少 JavaScript 或任何其他扩展策略的使用通常是一个很好的做法,因为每次这些扩展策略执行时它都会在消息处理器中产生一个线程,因此有死锁的风险,因为线程池总是有限制。Apigee 专门提供了用于以异步方式登录的消息日志记录策略,因此您应该尝试在 Post 客户端流中设置 all 并尝试对任何类型的变量分配使用分配消息策略而不是扩展策略。希望这有帮助!
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答