为了账号安全,请及时绑定邮箱和手机立即绑定

MessageLogging 政策或新的 JavaScript 文件

MessageLogging 政策或新的 JavaScript 文件

翻翻过去那场雪 2021-12-23 15:51:05
我正在尝试实现 Apigee Logging 来记录几个属性,例如客户端 IP、总处理延迟和其他要从请求和响应中检索的自定义标头。它们分为 BaseLog 属性、SysLog 属性和 AppLog 属性,后者分别写在 BaseLog 之上。我想知道记录这些的最佳方式是什么 - 使用 MessageLogging Policy 还是使用自定义 JS 代码来提取和填充变量会更好?最后,我必须将日志发送到 Splunk 服务器。怎么会去做呢?任何输入都会有帮助!谢谢。
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我使用JavaScript 策略来设置我想在日志文件中写入的变量(例如 requestDateTime、ip 等),方法是使用context.setVariable("variableName", value);

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

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

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

但是,我只是分享我使用的方法。

希望对你有用。


查看完整回答
反对 回复 2021-12-23
?
冉冉说

TA贡献1877条经验 获得超1个赞

尽量减少 JavaScript 或任何其他扩展策略的使用通常是一个很好的做法,因为每次这些扩展策略执行时它都会在消息处理器中产生一个线程,因此有死锁的风险,因为线程池总是有限制。

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

希望这有帮助!


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号