Working Out the Kinks – Handling Error Messages and Diagnostic Information
Handling error and diagnostic information in real-time systems is a delicate balance. You don’t want to execute code that unnecessarily bogs a system down and impacts runtime performance. Critical applications can’t stop due to errors, and while they can continue through some exceptional conditions such as the inability to load a data file, this could lead to an operator unknowingly working with a degraded system.
For these reasons, logging warnings and error conditions is the preferred approach in maintaining a complex real-time system. Since runtime errors and exceptions can be a serious risk to crashing an application, they must be captured and logged wherever possible. The TerraLens Geospatial SDK is designed to keep running, while providing the diagnostic information necessary to address runtime issues.
In order to maintain sufficient detail for diagnosing the system, any such logging system must be highly efficient. With the TerraLens SDK, log messages can be filtered in various ways, based on their type, severity and source. Multiple filters can be used, directing different sets of messages to different locations.
Applications can direct critical errors and information to the user, while simultaneously recording a more complete stream to disk, or across the network with a real-time network-based system such as Syslog. Applications can also log their own messages using the same system to maintain a coherent log of all runtime events, all with little to no performance impact for messages which are discarded.
As runtime performance is a key concern for real-time applications, diagnostics should not be limited to just logging. TerraLens provides an internal diagnostic tracing capability to gather information about the runtime performance of your application in exceptional detail. This enables applications to look beyond the typical “blackbox”, and visualize the impact of their application’s use of the SDK, and its interaction with the system graphics drivers and hardware.
Using this detailed view inside, challenging performance issues can be easily identified and addressed. Tracing is highly optimized for minimal impact, and can be enabled at runtime even during the most complex visualizations, providing the insight and information necessary to enable the performance tuning which is so critical for real-time applications.