从 dataweave 内部记录

logging from inside dataweave

就像我们使用

<xsl:message> 

内部 XSL 转换器和

system.out.println

对于 datamapper,我们有 dataweave 的日志记录机制吗?如果不是直接组件,我们是否有任何其他替代机制来从 dataweave 内部实现日志记录?

你可以在这里看看我的回答 - .

如果您想记录dataweave正在处理的每条记录map,您可以将过滤函数更改为return true always 并记录[=19=之前的值]ing.

顺便说一句,您想进行哪种类型的日志记录?

在 mule 3.8 中你可以这样做,mule 允许登录 dataweave

 %dw 1.0 
 %output application/json
 --- 
 {   
   result: log("Logging the array",[1,2,3,4]) 
 }

你可以参考最新的文档here

目前调试 Dataweave 的唯一方法也是最好的方法是使用下面给出的行中的代码。 值:log("This is Debugvalue",flowVars.company)

您可以将 flowVars.company 替换为您想要在应用程序运行时发送的任何值。

使用数据编织函数log

脚本

%dw 2.0
output application/json

var x = now()
---
log("Today is " ++ x)

输出

"Today is 2020-03-24T00:38:58.323Z"

来源: https://docs.mulesoft.com/mule-runtime/4.2/dw-core-functions-log

目前(2021 年),您将使用 DataWeave 2.x 并且 DW 库中有一个方便的日志功能。

你可以这样使用它:

%dw 2.0
output application/dw

var usermessage = "Bob was here"
---
log ("LOGGEDUSERMESSAGE",usermessage)

日志中的输出将如下所示:

INFO  2021-04-20 16:20 .... LoggingService$: LOGGEDUSERMESSAGE - "Bob was here"

但是在应用程序中,log() 解析为第二个参数的字符串版本。或者换句话说,它会原封不动地传递第二个参数,但它会记录您在第一个参数中提供的标签,并用破折号与第二个参数分开。

注意,这不是日志级别。它是一个内部标签,应用程序所有者可以使用它来过滤日志条目。