【发布时间】:2020-08-26 09:43:09
【问题描述】:
在 WSO2 ESB 中,我希望在日志序列的末尾打印属性中介中服务链期间设置的所有属性。 在不知道属性名称的情况下,有什么方便的方法吗?
谢谢
【问题讨论】:
-
请将您的标题更改为问题表单
在 WSO2 ESB 中,我希望在日志序列的末尾打印属性中介中服务链期间设置的所有属性。 在不知道属性名称的情况下,有什么方便的方法吗?
谢谢
【问题讨论】:
有比实现自定义类中介更简单的方法。您可以为此使用脚本调解器,并使用如下代码打印所有带有来自消息上下文的值的属性。它正在开发 WSO2EI 6.6.0 和 WSO2ESB 4.9.0
<script language="js"><![CDATA[var keySet = mc.getPropertyKeySet();
var i = 1;
var it = keySet.iterator();
while(it.hasNext()){
var prop = it.next();
java.lang.System.out.println(i + ": " + prop + " = " + mc.getProperty(prop));
i++;
}]]></script>
更新: 我发现,在 linux 系统上 System.out.println 不能正常工作,所以你可以使用 mc.getServiceLog() 方法来获取记录器来打印信息
<script language="js"><![CDATA[
var keySet = mc.getPropertyKeySet();
var i = 1;
var it = keySet.iterator();
var log = "\n\r";
while(it.hasNext()){
var prop = it.next();
log += i + ": " + prop + " = " + mc.getProperty(prop)+"\n\r";
i++;
}
mc.getServiceLog().info(log);
]]></script>
【讨论】: