I wanted to discuss logging in the project. Users of my project sometimes write fairly long jsonata chains of 50-100 lines of code, with loops, filters, and so on.
They often lack information about what's going on internally, especially when something breaks. For example, issue-(#116) had an example of a signature error. This is sufficient if it's a simple operation, but it's complex if it's a function call within map or each.
I'd like to suggest adding trace-level logging to standard operations, as an example. Add a trace to the signature check about which argument values it checks, all of them, not just the one that fails.
I understand this will create a large volume of logs, so I suggest using the trace-level logging.
As a first step, I created mr with the addition of slf4j-api (#118). It doesn't carry a heavy load, although it violates the "Zero dependency and small" principle.
At the same time, it allows consumers to receive feedback from jsonata.
Currently, this is implemented using a dbg flag, which can't be enabled or disabled without editing the source code.
I wanted to discuss logging in the project. Users of my project sometimes write fairly long jsonata chains of 50-100 lines of code, with loops, filters, and so on.
They often lack information about what's going on internally, especially when something breaks. For example, issue-(#116) had an example of a signature error. This is sufficient if it's a simple operation, but it's complex if it's a function call within map or each.
I'd like to suggest adding trace-level logging to standard operations, as an example. Add a trace to the signature check about which argument values it checks, all of them, not just the one that fails.
I understand this will create a large volume of logs, so I suggest using the trace-level logging.
As a first step, I created mr with the addition of slf4j-api (#118). It doesn't carry a heavy load, although it violates the "Zero dependency and small" principle.
At the same time, it allows consumers to receive feedback from jsonata.
Currently, this is implemented using a dbg flag, which can't be enabled or disabled without editing the source code.