Application logging is essential for gaining insight into application performance and troubleshooting problems. It is not long ago that logging consisted mainly of a sequence of differently formatted prints, whose extension and standardization was application-specific. With logging libraries like Log4j, Log4c, etc, this situation was effectively improved. With Log4j 1 it was possible to create uniformly formatted text line logs defined by pattern formats such as "[%p] %r %c %M - %m%n". Standardized print interfaces simplified application development.
Text line based log formats are still very popular. Whether Log4j formats, syslog, Apache logs, CSV files or traditional logs, they are easy to read without a tool, at least up to a certain size.
The only requirement is a line ending, typically a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed. The syntactic format of the lines and its content varies from format to format.
The impulse Pattern Log Reader enables the reading of any text lines with the help of regular expressions. The determined line segments can then be converted into textual and numerical data and stored as log samples. The impulse CSV Data and Log Reader assumes text lines with unique separator chars (configurable) and optional labels.
[TRACE] 2020-04-27 14:32:37,895 de.toem.impulse.test.secondary.Log2 log - Calgary: detecting Calgary via BIOS EBDA area [TRACE] 2020-04-27 14:32:37,897 de.toem.impulse.test.secondary.Log2 log - fbcon: i915drmfb (fb0) is primary device [TRACE] 2020-04-27 14:32:37,898 de.toem.impulse.test.secondary.Log2 log - ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
<135>1 2020-04-27T14:32:37.933+02:00 thomas log4j2.xml 11900 - - Bluetooth: SCO socket layer initialized <135>1 2020-04-27T14:32:37.934+02:00 thomas log4j2.xml 11900 - - get Sinus Wave 0.5590402518615227 <135>1 2020-04-27T14:32:37.935+02:00 thomas log4j2.xml 11900 - - hub 2-0:1.0: USB hub found
Markup language logs are usually based on XML, JSON or YAML. They have the advantage of a unique structure and provide tools to create, validate and read these structures. They also have the benefit that they can easily be converted into data structures of various programming languages.
The disadvantage of these formats is that they cannot be read as easily without tools as text line logs.
Even if the markup languages formats have a uniform syntactical structure, the individual formats differ considerably. The Log4j 1.2 XML format consists of XML fragments, where the information is mostly embedded in attributes. The Java Logging API format consists of a complete XML structure; all information is embedded as text in child elements.
The configurable impulse XML Log Reader, impulse JSON Log Reader, and impulse YAML Log Reader allow reading all typical types of markup
language based log formats and are supplied with a number of standard configurations like GELF and Log4J.
, { "thread" : "main", "level" : "INFO", "loggerName" : "de.toem.impulse.test.primary.Log1", "message" : " ACPI: Local APIC address 0xfee00000", "endOfBatch" : false, "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger", "instant" : { "epochSecond" : 1587458274, "nanoOfSecond" : 900000000 }, "threadId" : 1, "threadPriority" : 5 }
Read and combine multiple log sources from local resources or external networks, serial interfaces, data acquisition units and debug adapters. Use a highly configurable log reader that allows you to focus on the information you need and add your own data.
Trace problems back to their cause. See how your components work together, identify relationships and share the results with colleagues. Easy-to-use visualization elements enable the design of informative views. Use a variety of diagram types to display log information or utilize charts to display statistical information.
Quickly identify log patterns and errors without having to examine and read a single log file. A wide range of signal calculation tools make it possible to combine, compare and extract log information. Combine infomration from different sources, extract statistical informations or search for conflicts automatically.
Analyze and fix the problem within the same IDE. Integrate the log view source port into your launcher and debug configuration. Compare the results with the Compare Viewer.
There are multiple ways to view signal data with impulse. You might :
impulse come with a set a example wave files.
After receviing new signal data from a port or adding annotations, you may want to save your signal data changes.
All readers have a powerful but easy to use UI. You can create configuration for custom text and markup language logs or modify included configurations for standard formats.
Logs are usually written to one or more files. More and more often, however, they come via a network interface (TCP,UDP,..), serial interfaces or debug adapters (embedded systems), as output of commands (e.g. 'cat /var/log', or as a combination of the previous options.
impulse signal ports can read the data directly from streams such as TCP, pipes, applications, interfaces or debug adapters. If more than one signal source is present (e.g., log data from a serial interface and trace over TCP), these signals can be merged and synchronized.
A view combines a freely configurable set of plots organized in the form of a tree. Users can define multiple views and choose between them at any time to get the information they need.
Plots are easily configurable specific representations of signal data. Plots may have a common zoomable and scrollable axis (e.g. the time of the trace) or they may be adjusted into the window size (charts)
Sample Tables allow tabular displays of signal data and are variously synchronizable with a main view (signals, cursor and data etc.).
The sample instpector provides a deeper insight into every sample.
It is impossible to visually analyse large amounts of data manually. Easy-to-use tools allow you to automate specific analysis applications.
Signal productions generate a new signal from a single log signal or multiple signals. They allow you to combine signals with mathematical operations, implement custom parsers, compare log signals, extract statistical information or automatically detect problems.
The resulting signal can then be displayed and analyzed in any chart or diagram. Here are some examples:
Use the 'SignalScript' production to extract relevant data from your log patterns and prepare the statistical data. Display with bar, pie, donut, radar, XY or user-defined charts.
To compare 2 logs, select both files in the explorer/navigator and select "impulse->Compare with each other" in the context menu. The signal area of the viewer will show the following annotations.
In the display area, you can examine the differences by displaying either diff signals ( a diff signal only contains signal contents that are the same in both sources or shows an orange thick line in all areas with different contents) or the original signals.