View Exception Details
Nodinite v7 includes a specialized exception viewer that displays .NET exception chains directly in Log Views. When developers log exceptions from .NET applications, Azure Functions, or frameworks like Serilog, the exception viewer automatically parses and formats the exception data for faster troubleshooting.
What you'll learn on this page:
✅ View exception chains - See the complete failure path from root cause to final error
✅ Navigate stack traces - Inspect formatted stack traces with preserved line breaks
✅ Drill into inner exceptions - Understand nested exception relationships
✅ Extract exception data - Use formulas to create searchable fields from exception properties
Tip
When to use the exception viewer: Open any Log Event that contains exception data in the
Bodyfield orContext["ExtendedProperties/1.0#Exception"]property. The exception viewer automatically detects and formats .NET exception structures.
How the Exception Viewer Works
The exception viewer parses .NET exception JSON structures and presents them in an organized, readable format. This eliminates the need to manually parse JSON or decode base64-encoded payloads.
What the Exception Viewer Shows
When you open a Log Event with exception data in Nodinite v7 Log Views, the exception viewer displays:
- Exception chain visualization - Each exception level is clearly separated with indentation
- Stack trace formatting - Line breaks and indentation preserved for readability
- Inner exception navigation - Drill down from outer to inner exceptions to find root causes
- Exception properties - HResult, error codes, Source, and other .NET exception metadata
- Contextual information - Order IDs, retry attempts, and environment details from Context properties

Screenshot of the exception details view in a Nodinite v7 Log View showing exception chain, stack trace, and properties.
Typical Exception Scenario
A common scenario: An Azure Function attempts to process an order, encounters a database connection timeout, which is caused by a DNS resolution failure.
Exception chain displayed in the viewer:
- InvalidOperationException (outermost) - "Failed to process order ORD-12345 after 3 retry attempts"
- SqlException (middle) - "Network-related error connecting to SQL Server"
- SocketException (innermost/root cause) - "No such host is known (sql-prod-east.database.windows.net)"
The exception viewer shows all three levels, allowing you to quickly identify that the root cause is a DNS resolution failure, not a database or application logic error.
Exception Properties
Each exception level in the chain shows:
| Property | Description | Example |
|---|---|---|
| ClassName | .NET exception type | System.Data.SqlClient.SqlException |
| Message | Human-readable error description | "A network-related or instance-specific error occurred..." |
| Source | Component that threw the exception | "Core .Net SqlClient Data Provider" |
| StackTraceString | Call stack showing code path | File names, method names, line numbers |
| HResult | Win32/COM error code | -2146232060 |
| InnerException | Nested exception (root cause) | SocketException details |
Additional properties may appear depending on exception type:
- SqlException:
Number,State,Class,Server,ErrorCode - SocketException:
NativeErrorCode - WebException:
Status,Response
Using Exception Data in Search Fields
You can create Search Fields using formula-based extraction to make exception properties searchable. This enables filtering and reporting on specific exception types or error codes.
Formula Examples
Extract exception message:
JsonPath('..Message', Context('ExtendedProperties/1.0#Exception'))
Extract exception class name:
JsonPath('..ClassName', Context('ExtendedProperties/1.0#Exception'))
Extract SQL error code:
JsonPath('..ErrorCode', Context('ExtendedProperties/1.0#Exception'))
Extract innermost (root cause) exception:
JsonPath('..InnerException.InnerException.Message', Context('ExtendedProperties/1.0#Exception'))
Search Field tip: Create a custom search field like "Exception Type" with the ClassName formula to enable filtering Log Views by specific exception types (e.g., show only SqlException or SocketException events).
Serilog Integration
When .NET applications use Serilog with Nodinite sinks, exceptions are automatically captured when you call .Error(exception, message). The exception object is serialized to JSON and stored in Context["ExtendedProperties/1.0#Exception"].
Example Serilog code:
try
{
await ProcessOrderAsync(orderId);
}
catch (Exception ex)
{
_logger.Error(ex, "Failed to process order {OrderId}", orderId);
// Exception is automatically sent to Nodinite with full chain and stack trace
}
The Nodinite exception viewer automatically detects this format and displays the exception chain, stack traces, and all properties.
Learn more: See Serilog .NET Exceptions for configuration details and best practices.
Best Practices for Viewing Exceptions
For Business Users
- Focus on the outermost exception message - This typically contains the business-friendly error description
- Check Context properties - Look for Order IDs, Transaction IDs, or other business data in the Context section
- Note the timestamp - Correlate with business events or system maintenance windows
- Add comments - Document investigation findings using the Comments feature
For Developers
- Start with the innermost exception - This is usually the root cause
- Inspect stack traces - Look for line numbers and file names to pinpoint code locations
- Check HResult and error codes - These identify specific Win32 or COM errors
- Compare exception chains - Look for patterns across multiple failed Log Events
- Extract exception data - Create custom Search Fields to track specific error types
For Operations Teams
- Monitor exception trends - Use Search Fields to count exceptions by type over time
- Set up alerts - Create Monitor Views that trigger when specific exception types appear
- Document known issues - Add Comments with links to known issues or workarounds
- Track resolution time - Use timestamps and comments to measure time-to-resolution
Troubleshooting
Exception Data Not Displaying
If you don't see exception details in the exception viewer:
- Check the Body field - Exception data may be base64-encoded in the
Bodyfield. The viewer should auto-decode, but verify the data exists - Check Context properties - Look for
ExtendedProperties/1.0#Exceptionin the Context tab - Verify JSON format - Exception data must be valid JSON with .NET exception structure (ClassName, Message, StackTraceString)
- Check Serilog configuration - Ensure the Serilog sink is configured to capture exceptions (see Serilog)
Info
Need to generate test exceptions? Developers can create sample exception Log Events for testing. See Generate Exception Log Events for PowerShell scripts.
Next Step
Add Comments to Log Events - Document investigation findings directly on Log Events
Create Custom Search Fields - Extract exception data for filtering and reporting
Related Topics
Log Views Overview - Learn about viewing and filtering Log Events
Serilog Integration - Configure Serilog to capture .NET exceptions
Generate Exception Log Events - Create test exception data for demos
Context Options - Understand Context properties and custom metadata
Monitor Views - Set up alerts for specific exception types