【问题标题】:logging from inside dataweave从 dataweave 内部记录
【发布时间】:2016-08-18 14:36:57
【问题描述】:

就像我们使用的一样

<xsl:message> 

XSL 转换器内部和

system.out.println

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

【问题讨论】:

标签: mule anypoint-studio dataweave


【解决方案1】:

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

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

你可以参考这个here的最新文档

【讨论】:

    【解决方案2】:

    您可以在这里查看我的回答 - https://stackoverflow.com/a/36458835/5616671

    如果您想记录 dataweave map 正在处理的每条记录,您可以将过滤功能更改为始终返回 true 并在返回之前记录值。

    顺便说一句,你想做什么类型的日志记录?

    【讨论】:

      【解决方案3】:

      目前调试 Dataweave 的唯一方法和最佳方法是使用下面给出的代码行。 值:log("这是调试值",flowVars.company)

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

      【讨论】:

      • 这是 DataWeave 1.x 的有效答案
      【解决方案4】:

      使用数据编织功能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

      【讨论】:

        【解决方案5】:

        目前(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() 解析为第二个参数的字符串版本。或者换一种说法,它会原封不动地传递第二个参数,但它会记录您在第一个 arg 中提供的标记,并用破折号与第二个 arg 分隔。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-06-01
          • 2017-11-01
          • 1970-01-01
          • 2017-08-14
          • 2019-03-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多