Flow Logging
Overview
Avilable starting from OpenLegacy Core version
5.1.0
Flow logging provides a comprehensive audit trail of metadata for every flow execution. It captures critical information such as the trigger source, execution path, step durations, and data payloads.
At the conclusion of each flow run, all metadata is emitted as a single structured JSON log entry via the logger io.openlegacy.flow.* at the INFO level.
Configuration
You can customize the depth of your logs using two independent dimensions. These can be defined in your application.yaml or via environment variables.
Logging Dimensions
| Setting | Controls |
|---|---|
log-input-output | Determines if the trigger payload and flow response body are included. |
step-level | Determines the level of detail captured for each individual step. |
Configuration Examples
YAML Setup
flow:
logging:
log-input-output: false # Default
step-level: none # Options: none, basic, fullEnvironment Variables
OL_FLOW_LOGGING_LOG_INPUT_OUTPUT=trueOL_FLOW_LOGGING_STEP_LEVEL=full
Step-Level Detail Values
| Value | Steps in Log? | Runtime Data Included? | Details Captured |
|---|---|---|---|
none | No | No | Only top-level flow metadata. |
basic | Yes | No | Name, type, duration, path, and status. |
full | Yes | Yes | All runtime data (inputs, outputs, connections). |
Log Structure
Each log entry follows a consistent schema, allowing for easy parsing by monitoring tools.
Example Schema
{
"flowName": "get-customer-flow",
"durationMs": 142,
"success": true,
"errorMessage": null,
"input": { ... },
"output": { ... },
"steps": [ ... ]
}Field Reference
| Field | Always Present | Description |
|---|---|---|
flowName | Yes | Unique identifier for the flow. |
durationMs | Yes | Total execution time in milliseconds. |
success | Yes | true if the status code is 2xx. |
errorMessage | On failure | Detailed exception or error description. |
input | Optional* | Request metadata (depends on log-input-output). |
output | Optional* | Response metadata (depends on log-input-output). |
steps | Optional** | List of step metadata (depends on step-level). |
Input & Output Structure
The shape of the input and output objects varies based on the trigger type used to start the flow.
| Trigger Type | Input Example | Output Example |
|---|---|---|
| HTTP (WebFlux) | Method, URL, ContentType, Origin, Headers, Body | httpCode, Headers, Body |
| Kafka | Topic, Body | Topic, Body |
| IBM / ActiveMQ | Queue, Mode, Body | Queue, Body |
| AS/400 CDC | Tables, Body | N/A |
| VSAM Dataset | vsamPath, Body | N/A |
Note on Data Privacy: When
log-input-outputis set to false (the default), thebodyfield is always returned as an empty object{}. All other technical metadata (URLs, topics, queues) remains visible for diagnostic purposes.
Updated about 9 hours ago
