log

log<T>(prefix: String = "", value: T): T

Without changing the value of the input, log returns the input as a system log. So this makes it very simple to debug your code, because any expression or subexpression can be wrapped with log and the result will be printed out without modifying the result of the expression. The output is going to be printed in application/dw format.

The prefix parameter is optional and allows to easily find the log output.

Use this function to help with debugging DataWeave scripts. A Mule app outputs the results through the DefaultLoggingService, which you can see in the Studio console.

Parameters

Name Description

prefix

An optional string that typically describes the log.

value

The value to log.

Example

This example logs the specified message. Note that the DefaultLoggingService in a Mule app that is running in Studio returns the message WARNING - "Houston, we have a problem," adding the dash - between the prefix and value. The Logger component’s LoggerMessageProcessor returns the input string "Houston, we have a problem.", without the WARNING prefix.

Source

%dw 2.0
output application/json
---
log("WARNING", "Houston, we have a problem")

Output

Console Output

"WARNING - Houston, we have a problem"

Expression Output

"Houston, we have a problem"

Example

This example shows how to log the result of expression myUser.user without modifying the original expression myUser.user.friend.name.

Source

%dw 2.0
output application/json

var myUser = {user: {friend: {name: "Shoki"}, id: 1, name: "Tomo"}, accountId: "leansh" }
---
log("User", myUser.user).friend.name

Output

Console output

User - {
  friend: {
    name: "Shoki"
  },
  id: 1,
  name: "Tomo"
}

Expression Output

"Shoki"

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub