MessageLogging策略或新的JavaScript文件
我正在尝试实现Apigee日志记录,以记录一些属性,例如客户端IP、总处理延迟和从请求和响应中检索的其他自定义头。它们分为BaseLog属性、SysLog属性和AppLog属性,后者分别写在BaseLog之上。我想知道记录这些的最佳方法是什么——使用MessageLogging策略还是使用自定义JS代码来提取和填充变量更好 最后,我必须将日志发送到Splunk服务器。一个人怎么做呢MessageLogging策略或新的JavaScript文件,javascript,logging,apigee,Javascript,Logging,Apigee,我正在尝试实现Apigee日志记录,以记录一些属性,例如客户端IP、总处理延迟和从请求和响应中检索的其他自定义头。它们分为BaseLog属性、SysLog属性和AppLog属性,后者分别写在BaseLog之上。我想知道记录这些的最佳方法是什么——使用MessageLogging策略还是使用自定义JS代码来提取和填充变量更好 最后,我必须将日志发送到Splunk服务器。一个人怎么做呢 任何输入都会有帮助!谢谢。我使用JavaScript策略通过使用context.setVariable(“vari
任何输入都会有帮助!谢谢。我使用JavaScript策略通过使用
context.setVariable(“variableName”,value)设置要写入日志文件的变量(例如,requestDateTime、ip等)代码>
然后在消息日志策略中引用这些变量
<Message>{requestDateTime}|{client.ip}|{request.content}|{elapsTime}</Message>
{requestDateTime}{client.ip}{request.content}{elaptime}
实际上,Apigee有很多有用的变量,如果您不想在流中添加更多JS策略,您可以直接使用它,但对于我的情况,我想在日志中写入很多值,其中一些变量必须与其他变量连接,以便在引用MessageLogging之前轻松设置
然而,我只是分享我使用的方法
希望它对您有用。通常最好尽量减少使用JavaScript或任何其他扩展策略,因为每次执行这些扩展策略时,它都会在消息处理器中生成一个线程,因此有死锁的风险,因为线程池总是有限制的
Apigee专门为异步方式的日志记录提供消息日志策略,因此您应该尝试在Post客户端流中设置all,并尝试使用Assign消息策略,而不是任何类型的变量分配的扩展策略
希望这有帮助