Portal Community

NodeLogEmitted Payload

{
  executionId: string;
  nodeId: string;
  level: 'debug' | 'info' | 'warn' | 'error' | 'critical';
  message: string;
  data: object | null;      // structured data attached to the log
  timestamp: string;        // ISO 8601 with milliseconds
  traceId: string;          // OpenTelemetry trace ID
}

Row Column Reference

ColumnSource FieldDisplay Format
TimestamptimestampHH:MM:SS.mmm (local time)
Level badgelevelColour-coded chip: DEBUG/INFO/WARN/ERROR/CRIT
Node namenodeId → lookup nameThe node's display name, not the raw ID
MessagemessagePlain text, sanitized. Truncated to 200 chars with "…" if longer
Data previewdataIf data is present, a small JSON preview "{…}" appears at row end; click to expand

Level Colours

LevelColourCSS Variable
debugGrey#718096
infoBlue#60a5fa
warnAmber#fbbf24
errorRed#f87171
criticalDark Red#dc2626

Emitting Logs from a Backend Executor

In a C# executor, logs are emitted via the standard ILogger injected through NodeExecutionContext:

// In ExecuteInternalAsync:
ctx.Logger.LogInformation("HTTP GET {Url} → {StatusCode}", url, response.StatusCode);
ctx.Logger.LogDebug("Response body: {Body}", body);
ctx.Logger.LogWarning("SMTP retry {Attempt}/{Max}: {Reason}", attempt, max, reason);
ctx.Logger.LogError(ex, "HTTP request failed after {Retries} retries", retryCount);

The NodeLogEmitted SignalR event is emitted by a custom ILoggerProvider that intercepts all logs written within the executor's execution scope.