- 6 minutes to read

Log Event

A Log Event is the JSON object that every logging solution sends to Nodinite, whether it is one of the out-of-the-box Log Agents or your own code. It records one business or technical event, optionally with the message itself, so you get end-to-end logging across any platform.

This page explains the parts of a Log Event, how to deliver it, and what happens after it arrives. The Reference Pages section at the end lists where each field and value is documented.

The Three Parts of a Log Event

A Log Event has mandatory details and an optional payload and context.

graph LR subgraph "Log Event" subgraph "Details (mandatory)" roED[fal:fa-bolt Event Details
LogDateTime = 2018-05-03 13:37:00+02:00
EndPointName = https://api.nodinite.com/...
OriginalMessageTypeName = Invoice
...] end subgraph "Payload (optional)" ro[fal:fa-envelope Message
Body = base64EncodedMessage] end subgraph "Context (optional)" roKey[fal:fa-key Key Values
InvoiceNo = 123
CorrelationId = 456
...] end end style roED fill:#2678BD style ro fill:#E47528 style roKey fill:#3F827B

The three parts of a Log Event: details (blue, mandatory), payload (orange, optional), and context (green, optional).

Part Required What it holds Reference
Details ✅ Yes Generic information about the event, WHEN and HOW: LogDateTime (when), the Endpoint (where), OriginalMessageTypeName (which format or schema the message follows), event direction, status, and processing details. Nodinite also calls these Additional field values. Details
Payload ❌ No The business transaction data itself, WHAT: usually XML, JSON, flat files (EDI/X12), or zip files, as one or more base64 encoded bodies. The Message Type identifies the format, and the Logging Service extracts Search Field values from it. Payload
Context ❌ No Key/value pairs with extra metadata: business data such as InvoiceId, CustomerNumber, or OrderNumber, and technical data such as CorrelationId, SessionId, or RetryCount. Search Fields can extract values from the context too, and Context Options keys change how Nodinite processes the event. Context

Deliver Log Events

Log Events reach Nodinite in three ways:

graph LR subgraph "Logging solutions" roMessageBroker[fal:fa-archive Nodinite Log Agents
Logic Apps, IBM IIB/ACE, BizTalk, Mule, ...] roLogSink("fal:fa-bolt Custom Logging Solution") --> roId1["fal:fa-list Queue
fal:fa-folder Folder
..."] end subgraph "Web Server" roLogAPI(fal:fa-cloud-arrow-down Log API) roPS(fal:fa-truck-pickup Pickup Service)--> roLogAPI roId1 -.Log Event.-x roPS roLogSink --> | Log Event | roLogAPI roMessageBroker --> | Log Event | roLogAPI end style roMessageBroker fill:#2678BD style roLogSink fill:#9E59BB style roId1 fill:#E47528 style roPS fill:#3F827B style roLogAPI fill:#93d16d

Nodinite Log Agents (blue) and custom code (purple) post directly to the Log API (green); asynchronous custom logging goes through an intermediate store (orange) that the Pickup Service (teal) reads.

  • Your logging solutions don't depend on the Log API; reboot or update Nodinite whenever you like.
  • You don't need to write your own retry logic.
  • The Pickup Service manages delivery and concurrency, so the Log API is never overloaded.
  • The decoupled architecture lets you change either side without touching the other.

What Happens After You Log an Event

The Logging Service processes every Log Event in four steps, which turn a raw integration event into business-friendly, searchable data without custom queries or database knowledge.

Step 1: Event Received (Unprocessed)

Step 2: Message Type Determination

The Logging Service determines the Message Type, which identifies the format or schema of the message, from:

For Microsoft BizTalk Server, flat file and EDI messages get a post-processing step: the Logging Service looks up the schema in the BizTalk Server configuration database to resolve the proper Message Type, and an Endpoint can set a Message Type for passthru interchanges; see Message Types for BizTalk Server.

Step 3: Search Field Extraction

  • The Logging Service decodes the body with the resolved character encoding: the ExtendedProperties/1.0#Encoding context property first, then an encoding named in the XML declaration of the body, then the Character encoding of the Endpoint, then the one of the Message Type (default UTF-8 without BOM) New 7.11
  • It finds the Search Field Expressions bound to the Message Type, and each expression extracts values from the payload or the context:
    • XPath extracts from XML payloads.
    • JSON Path extracts from JSON payloads.
    • RegEx extracts from EDI and text formats.
    • Message Context Key extracts from context properties.
    • Formula combines and transforms values; see Formula.
  • The extracted values become searchable in Log Views.
  • Search Fields and built-in fields, such as the Application interchange id, also drive the Group by feature of Log Views: grouping correlates the events of one business transaction, which is how a BPM ties events from different systems together.
  • Add or change a Search Field later and re-index to extract values from Log Events that are already logged.

Step 4: Event Processed

  • The status changes from Unprocessed to Processed.
  • The Message Type and the Search Field values are indexed.
  • The event appears in Log Views with full search, so business users find it by familiar terms such as Order Number or Customer ID.

Example Flow

graph LR A[XML Invoice arrives] --> B[Message Type: Invoice/1.0] B --> C[Extract InvoiceNumber via XPath] B --> D[Extract CustomerID via XPath] B --> E[Extract Amount via XPath] C --> F[Searchable in Log Views] D --> F E --> F F --> G[Business users search:<br/>'InvoiceNumber = 12345'] style A fill:#2678BD style B fill:#9E59BB style C fill:#E47528 style D fill:#E47528 style E fill:#E47528 style F fill:#93d16d style G fill:#93d16d

An XML invoice (blue) gets its Message Type (purple), three XPath expressions extract values (orange), and the values become searchable (green).

Tip

See Message Types for how a Message Type binds a format to its expressions, and Search Fields for the expression plugins.

Repository Auto-Mapping

Log Events can populate the Repository Model automatically: context keys create and bind Integrations, Services, Systems, Transport Contracts, and positions in BPMs while you log, and the Endpoints and Message Types come from the Log Event details. This moves know-how from developers to business and IT operations teams and removes most manual administration.

Important

You must enable the AllowRepositoryAutomapping System Parameter for the Logging Service to honor the Repository Model data in a Log Event.

Use the Repository Binding context key for the structure, BPM Binding to position Services in a BPM, and Context Options for the individual keys.

Reference Pages

The Log API exposes these models; each page below is the single reference for its part.

Page What you find there
JSON Log Event Every JSON field of a Log Event: type, required, meaning, example; minimal and full examples
Context Options Every ExtendedProperties/1.0#… context key and what it changes during processing
Repository Binding The Repository Binding JSON, service relations, and the individual (legacy) repository keys
BPM Binding Positioning a Service in a BPM: domains, steps, service relations, connector styles
Endpoint Directions Values for the EndPointDirection field
Endpoint Types Values for the EndPointTypeId field
Event Directions Values for the EventDirection field and how Log Views combine them
Character Encoding New 7.11 How Nodinite decides the character encoding of a message body
Log using REST Sending Log Events over REST: base URL, authentication, Scalar and Swagger, code examples

Next Steps