<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Logging on DecipherMiddleware</title><link>https://blog.deciphermiddleware.in/tags/logging/</link><description>Recent content in Logging on DecipherMiddleware</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 08 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.deciphermiddleware.in/tags/logging/index.xml" rel="self" type="application/rss+xml"/><item><title>Logging within DataWeave Script</title><link>https://blog.deciphermiddleware.in/posts/dataweave-logging/</link><pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.deciphermiddleware.in/posts/dataweave-logging/</guid><description>&lt;p&gt;With the release of Mule runtime &lt;strong&gt;4.10&lt;/strong&gt; edge version, a new version of DataWeave, i.e. 2.10, is also &lt;a href="https://docs.mulesoft.com/release-notes/dataweave/dataweave-2.10.0-release-notes"&gt;released&lt;/a&gt;. One of the new features introduced in this release is &lt;strong&gt;&lt;a href="https://docs.mulesoft.com/dataweave/latest/dataweave-logging-configuration"&gt;DataWeave Logging Configuration&lt;/a&gt;&lt;/strong&gt;. The feature facilitates the developer to have granular control over logging. This leads to faster development and debugging.&lt;/p&gt;
&lt;p&gt;There might be a question: loggers are there; Why can’t we just put a log connector and log the variable or payload? What benefits do we get by logging within DataWeave? Where can I use this feature?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;🔭&lt;/strong&gt; Let’s explore DataWeave examples of varying complexities.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="-old-way-of-debugging"&gt;👴🏼 Old way of debugging &lt;a href="#-old-way-of-debugging" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s consider simple Mule flow which outputs a &lt;strong&gt;hello world!&lt;/strong&gt;, using a transform message.&lt;/p&gt;
&lt;div class="mermaid"&gt;---
config:
theme: 'neutral'
---
flowchart LR
A["HTTP(s)"] --&gt; B["Transform"]&lt;/div&gt;
&lt;h3 id="dataweave"&gt;DataWeave &lt;a href="#dataweave" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Difficulty level | ⭐️⚝⚝⚝⚝&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Print &amp;ldquo;hello world!&amp;rdquo;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-dw" data-lang="dw"&gt;%dw 2.0
output text/plain
---
&amp;#34;hello world!&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="output"&gt;Output &lt;a href="#output" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;hello world!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To analyze the value of payload in logs; the best way would be to add a logger after the transform message.&lt;/p&gt;
&lt;div class="mermaid"&gt;---
config:
theme: 'neutral'
---
flowchart LR
A["HTTP(s)"] --&gt; B["Transform"] --&gt; C["Logger"]&lt;/div&gt;
&lt;h3 id="console-output"&gt;Console Output &lt;a href="#console-output" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-07 23:50:57,309 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.01: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @6198f22a&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: dataweave-logsFlow/processors/1&lt;span class="p"&gt;;&lt;/span&gt; event: 5e704830-a3aa-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.runtime.core.internal.processor.LoggerMessageProcessor: hello world!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pretty simple and easy 🫠&amp;hellip; ❌ Not anymore, let&amp;rsquo;s increase the difficulty of the DataWeave script.&lt;/p&gt;
&lt;h3 id="dataweave-1"&gt;DataWeave &lt;a href="#dataweave-1" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Difficulty level | ⭐️⭐️⚝⚝⚝&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Factorial of a number&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-dw" data-lang="dw"&gt;%dw 2.0
output application/json
---
(1 to payload.inp) reduce $ * $$
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="input"&gt;Input &lt;a href="#input" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;inp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="output-1"&gt;Output &lt;a href="#output-1" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Considering the same flow, logger output will be as follows:&lt;/p&gt;
&lt;h4 id="console-output-1"&gt;Console Output &lt;a href="#console-output-1" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 10:38:31,654 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.07: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @1d9d48be&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: dataweave-logsFlow/processors/1&lt;span class="p"&gt;;&lt;/span&gt; event: d569a3a0-a404-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.runtime.core.internal.processor.LoggerMessageProcessor: &lt;span class="m"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Yuhhuuu!!! We did it, we got the factorial of the number printed in the logs, and the same has been sent to the calling API.&lt;/p&gt;
&lt;p&gt;Now, if we need to know the value on each iteration of the reduce function, how are the values updated at every iteration? 🤔🤔🤔&lt;/p&gt;
&lt;p&gt;If it were any other programming language, such as Java, Python, Go, etc. The print command would suffice for the needs. But in DataWeave, how do we do so?&lt;/p&gt;
&lt;p&gt;We are still in the old way of debugging 😞. Let&amp;rsquo;s modify the code to get the desired outcome.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-dw" data-lang="dw"&gt;%dw 2.0
output application/json
---
(1 to payload.inp) reduce(it,acc=[1]) -&amp;gt; acc + acc[it-1]*it
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="output-2"&gt;Output &lt;a href="#output-2" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="console-output-2"&gt;Console Output &lt;a href="#console-output-2" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 11:12:32,863 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @1bbba791&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: dataweave-logsFlow/processors/1&lt;span class="p"&gt;;&lt;/span&gt; event: 961820f0-a409-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.runtime.core.internal.processor.LoggerMessageProcessor: &lt;span class="o"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 6,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 24,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="m"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;payload[-1]&lt;/code&gt; will be desired output sent to the client.&lt;/p&gt;
&lt;p&gt;By doing this, we have significantly altered the dwl script and made it heavier, catering to the use case.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Simple task and complicated solution 😢😢😢&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="-new-way-of-debugging"&gt;😎 New way of debugging &lt;a href="#-new-way-of-debugging" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Starting with DataWeave 2.10, logging can be configured to control the verbosity of log messages using standard log levels: Debug, Info, Warn, and Error.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with an example and remove the logger connector to make the flow simpler.&lt;/p&gt;
&lt;div class="mermaid"&gt;---
config:
theme: 'neutral'
---
flowchart LR
A["HTTP(s)"] --&gt; B["Transform"]&lt;/div&gt;
&lt;h3 id="dataweave-2"&gt;DataWeave &lt;a href="#dataweave-2" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Difficulty level | ⭐️⚝⚝⚝⚝&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Print &amp;ldquo;hello world!&amp;rdquo;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-dw" data-lang="dw"&gt;%dw 2.0
output text/plain
---
logInfo(&amp;#34;hello world!&amp;#34;)
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="console-output-3"&gt;Console Output &lt;a href="#console-output-3" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 19:27:55,625 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @ae03158&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: &lt;span class="p"&gt;;&lt;/span&gt; event: ca3bdad0-a44e-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.weave.v2.model.service.DefaultLoggingService$: &lt;span class="s2"&gt;&amp;#34;hello world!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Yeah!!! We did it&amp;hellip;&lt;/p&gt;
&lt;img src="https://blog.deciphermiddleware.in/images/blogger/33b97e90f7.gif" width="250px"/&gt;
&lt;p&gt;Let&amp;rsquo;s look a little closer 🔎&lt;/p&gt;
&lt;h3 id="difference-in-packages-used-for-logging"&gt;Difference in packages used for logging &lt;a href="#difference-in-packages-used-for-logging" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Logger Connector:&lt;/strong&gt; org.mule.runtime.core.internal.processor.LoggerMessageProcessor&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DataWeave:&lt;/strong&gt; org.mule.weave.v2.model.service.DefaultLoggingService$&lt;/p&gt;
&lt;p&gt;In above example, info level is used, for different log levels, different DataWeave logging functions are available.&lt;/p&gt;
&lt;h3 id="dataweave-logging-functions"&gt;DataWeave Logging Functions &lt;a href="#dataweave-logging-functions" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;logWith&amp;lt;T&amp;gt;(level: LogLevel, prefix: String, value: T): T
logDebug&amp;lt;T&amp;gt;(prefix: String = &amp;#34;&amp;#34;, value: T): T
logInfo&amp;lt;T&amp;gt;(prefix: String = &amp;#34;&amp;#34;, value: T): T
logWarn&amp;lt;T&amp;gt;(prefix: String = &amp;#34;&amp;#34;, value: T): T
logError&amp;lt;T&amp;gt;(prefix: String = &amp;#34;&amp;#34;, value: T): T
log&amp;lt;T&amp;gt;(prefix: String = &amp;#34;&amp;#34;, value: T): T
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;More info on each function at &lt;a href="https://docs.mulesoft.com/dataweave/latest/dataweave-logging-configuration#dataweave-logging-functions"&gt;official docs&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now let&amp;rsquo;s increase DataWeave complexity&amp;hellip;&lt;/p&gt;
&lt;img src="https://blog.deciphermiddleware.in/images/blogger/955bcc363e.gif"/&gt;
&lt;h3 id="dataweave-3"&gt;DataWeave &lt;a href="#dataweave-3" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Difficulty level | ⭐️⭐️⚝⚝⚝&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Factorial of a number&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-dw" data-lang="dw"&gt;%dw 2.0
output application/json
---
(1 to payload.inp) reduce logInfo($ * $$)
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="input-1"&gt;Input &lt;a href="#input-1" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;inp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="output-3"&gt;Output &lt;a href="#output-3" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="console-output-4"&gt;Console Output &lt;a href="#console-output-4" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 20:16:32,412 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @46ac5059&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: &lt;span class="p"&gt;;&lt;/span&gt; event: 94c8ac00-a455-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.weave.v2.model.service.DefaultLoggingService$: &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 20:16:32,413 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @46ac5059&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: &lt;span class="p"&gt;;&lt;/span&gt; event: 94c8ac00-a455-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.weave.v2.model.service.DefaultLoggingService$: &lt;span class="m"&gt;6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 20:16:32,413 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @46ac5059&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: &lt;span class="p"&gt;;&lt;/span&gt; event: 94c8ac00-a455-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.weave.v2.model.service.DefaultLoggingService$: &lt;span class="m"&gt;24&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;INFO 2025-10-08 20:16:32,413 &lt;span class="o"&gt;[[&lt;/span&gt;MuleRuntime&lt;span class="o"&gt;]&lt;/span&gt;.uber.06: &lt;span class="o"&gt;[&lt;/span&gt;dataweave-logs&lt;span class="o"&gt;]&lt;/span&gt;.dataweave-logsFlow.CPU_INTENSIVE @46ac5059&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;processor: &lt;span class="p"&gt;;&lt;/span&gt; event: 94c8ac00-a455-11f0-bf2a-beeb1f9526e2&lt;span class="o"&gt;]&lt;/span&gt; org.mule.weave.v2.model.service.DefaultLoggingService$: &lt;span class="m"&gt;120&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With the above log, we can infer that 4 times computation was performed, and the values were printed by the DataWeave logger. It helps in debugging script a lot.&lt;/p&gt;
&lt;p&gt;The story doesn&amp;rsquo;t end here&amp;hellip; Let&amp;rsquo;s make the script a little more complex&amp;hellip; But Scope for this blog ends here&amp;hellip; 😔😔😔&lt;/p&gt;
&lt;h2 id="part-2"&gt;Part 2 &lt;a href="#part-2" class="anchor"&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Part 2 coming soon&amp;hellip;.&lt;/p&gt;
&lt;img src="https://blog.deciphermiddleware.in/images/blogger/bad297b70d.gif"/&gt;
&lt;hr&gt;
&lt;p&gt;Please share your valuable feedback 😊😊😊&amp;hellip;&lt;/p&gt;</description></item></channel></rss>