Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MessageLogging策略或新的JavaScript文件_Javascript_Logging_Apigee - Fatal编程技术网

MessageLogging策略或新的JavaScript文件

MessageLogging策略或新的JavaScript文件,javascript,logging,apigee,Javascript,Logging,Apigee,我正在尝试实现Apigee日志记录,以记录一些属性,例如客户端IP、总处理延迟和从请求和响应中检索的其他自定义头。它们分为BaseLog属性、SysLog属性和AppLog属性,后者分别写在BaseLog之上。我想知道记录这些的最佳方法是什么——使用MessageLogging策略还是使用自定义JS代码来提取和填充变量更好 最后,我必须将日志发送到Splunk服务器。一个人怎么做呢 任何输入都会有帮助!谢谢。我使用JavaScript策略通过使用context.setVariable(“vari

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

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


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

我使用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消息策略,而不是任何类型的变量分配的扩展策略

希望这有帮助