Central Logger

It can be difficult to diagnose problems when an application is operating across multiple windows. Just using the Chromium debugger would require you to have many different debug windows open and mentally map the times of the logs. It’d be like trying to find an ant in a house of mirrors! The Central Logger is a unified place to view logs, with accurate timing, across all components and microservices.

The Central Logger is very configurable, offering many settings for your specific needs and individual preferences. The settings of the Central Logger persist between sessions. The Central Logger indicates how many log messages are being currently displayed out of the total captured, or since the last time messages were cleared. Due to resource consumption, the Logger will only capture the last 100,000 log messages with the oldest messages being discarded.

Important: If you are capturing many log levels from many clients (for example, while debugging), the performance of your Finsemble application may be affected. Once debugging is completed, it's best reduce the logging levels to their default state.


Launching the Central Logger

To bring up the Central Logger, click on the Finsemble icon in the top left corner of the toolbar and select "Central Logger" from the menu. The Central Logger is only available when the Finsemble is hosted from localhost.

Log view

Log view

1. View changer

On the left side of the Central Logger window there are two links: Logs and Conf. Clicking either of these links will change the active view. The Conf view is a fully parsed, searchable (CTR+F) config for your application. The Logs view is simply a list of all of the logs that are coming in from the system.


2. Quick views

The quick views buttons provide a convenient way to toggle commonly used features on and off.

  • "Errors Only" sets the log levels to filter everything except for error messages.
  • "Default" sets the capture and log levels to their default state.
  • "Finsemble Support" toggles all capture and log levels on. Important: This capture state can be resource intensive and may affect the performance of your Finsemble application. Because the Central Logger autosaves your capture settings, you will want to manually return the Central Logger to default settings after you have completed your debugging procedures.

3. Settings

You can change the Central Logger's settings. You can set the logger to load at startup. You can set the logger to load when there's an error.


4. Log filters

You have four filters to help you find and diagnose problems. At the top of this section are two boxes (AND and OR). This changes the logic for all of the boxes. These filters do not support regexes, but they do support negation.

To exclude a log, simply preface your search string with -. For example, to leave out every log dealing with a toolbar, put -toolbar into one of the filters. Negation filters don't follow compound logic. If a log has a negated string in it, that entire log will be filtered out of the view, even if it matches other filters.


5. Client list (Components and Services)

The left area of the Central Logger displays a list of Finsemble logger clients (i.e., a newly created component or microservice). Click on the radio button next to client name to disable or enable that client's log capturing. When a client is terminated, they will no longer appear on the client list, but corresponding log entries will remain.

When multiple instances of a component belonging to a workspace can exist (e.g., many instances of a Salesforce window), Finsemble allocates a random ID to the name for uniqueness ("salesforceComponents-31-11566"). Otherwise, multiple components (e.g., a toolbar for each of your monitors) just have a counter for uniqueness (e.g., "searchMenu-Toolbar-2") Note: The client name "ChartIQ" refers to the Service Manager. It's rendered this way because of the way Finsemble is spun up.

Single-clicking a client name will bring up a Chrome Developer Tools window.

  • The "Toggle All" button conveniently switches between capturing all client's logs and capturing no client logs.
  • The "Hide Uncaptured" button removes any client not capturing logs from the client list.
  • The "Filter Client List" box is used to look specifically only for the client that you're attempting to debug.
  • The "Default Capture State" buttons determines the granularity of the message logged. When a default capture setting is enabled, new clients will capture log messages from their start so nothing is lost. You can capture Error (e.g., console.error, log.error, log.system.error), Warning, Log, Info, Debug, or Verbose messages.

6. Log list

The right area of the Central Logger displays the log messages generated by the clients. The log list consists of three columns. The left column details the timestamp—the time in milliseconds since the Finsemble application was started. Each timestamp is added when the corresponding log-function call is invoked, so it is accurate within the same client down to the microsecond range. However, timestamps must be calibrated by Finsemble for accuracy across component and service window boundaries (because of timer drift within Chromium), resulting in less precision when comparing timestamps across windows. Still, the timestamp is precise enough at the millisecond level to correctly order/sequence all log messages. The center column details the log message itself. The right column is the source (client) that captured the message. Single clicking the source will bring up a Chrome Developer Tools window.

  • The "Log Level" buttons filter the log list based on message type (e.g., Error, Warning, Info, Logs, Debug, Verbose), with the preceding "All" toggling all.
  • The Delta section displays the timestamp difference in milliseconds from the previously displayed message. To invoke the calculation, click on one log line then CTRL+click on a second log line. The time difference is then displayed in the Delta field.
  • "Scroll Top" scrolls the log list to the top. Conversely, "Scroll Bottom" scrolls the log list to the bottom.
  • "Clear Data" clears all the captured messages. Once cleared, the messages are lost unless previously saved using "Export Log to File."

7. Top level controls

  • The "Export Log" button will save all the log data along with the current settings in a file. Conversely, the "Import Log" button will import log data and the Central Logger's current settings from a file. Export and import is typically used for permanently capturing log data for debugging or field support.
  • The "Hide Left Panel" button hides the left panel so that only the log list is visible.
  • The Process Monitor provides details about the Finsemble processes that are currently running. It's sort of like the Window's Task Manager, but for your Finsemble application.
  • localhost:9090 brings up the Chromium console. This may not work on a mac.

check    The Central Logger is a unified place to view logs, with accurate timing, across all components and microservices. To bring up the Central Logger, click on the Finsemble icon in the top left corner of the toolbar and select "Central Logger" from the menu.
 


Further reading

For advanced information about the Central Logger, check out the Logger Client documentation.

For step by step instructions on generating log data for support from ChartIQ, check out Troubleshooting.

To learn more about debugging Finsemble so you can iterate more efficiently, read Debugging Finsemble.