Message Log Viewer

Introduction

Message Log Viewer Application is a Java based software application that allows the users to view live and saved log messages. The primary goal of the application is to provide maximum flexibility to the user while viewing the logged messages.
The Message Log Viewer application has the capability to:

  • Display live messages
  • Query for old messages

In both cases, the Message Log Viewer application provides the flexibility to the users to:

  • Display messages for a specific accelerator – LCLS/FACET/SPEAR and so on.
  • Filter messages based on a large set of options
  • Launch the Viewer from Command line with different set of filter options.
  • Save and import filter configurations.
  • Customize the graphical user interface view:
    • Drag and drop columns in any desired order.
    • Hide and show desired columns.
    • Sort columns in ascending and descending orders.

Block Diagram of the Message Log Viewer

The application provides maximum flexibility in viewing and analyzing the data. Here are some of the user interactions:

Select Accelerator or Program Name

The Message Log Viewer shall provide user interface controls (check boxes) to select the desired accelerators like LCLS, FACET, SPEAR etc. On initialization, the Messages tab will be populated with the data read from the Oracle database. Depending on the context in which the application is launched, the application shall display the log messages associated with the appropriate accelerator system. If for example, the application is launched from LCLSHOME, the Viewer shall be initialized with only LCLS related messages as shown in the picture below. The user shall have the flexibility to select one or more accelerators by checking the appropriate checkboxes and hit the ‘Apply’ button to filter messages.

Configure Search Filters

The Message Log Viewer GUI shall have a specialized ‘Filter’ panel on the right hand side of the user interface. The user shall be able to filter messages to be displayed on the results table by selecting one or more tags from a list of tags and make complex queries. The user interface shall have controls/widgets which are dynamically enabled or displayed based on the complex queries set by the user. For example, in the figure shown below, initially the user interface shall have the “Add Query” checkboxes unchecked. When the user checks the ‘Add Query’ check box, a set of widgets shall be enabled for the user to build the complex query.The query can be, for example:

Filter messages belonging to LCLS where ( ‘Facility’ ‘= ‘Alarm’ AND ‘Severity ‘= ‘MAJOR’ ) OR (‘Facility’ like ‘channel’ AND STATUS = ‘NO_ALARM’). This query can be easily generated by selecting the easy-to-use widgets shown in the figure below. Here two sets of queries are grouped together as shown by the line separator between two sets of queries. Note that the queries are case-insensitive.

Query Live or Saved Messages

The user shall be able to filter ‘Live’ messages or ‘old’ messages by selecting the appropriate radio button as shown in the picture above. There shall be a Calendar control that pops up when the user wants to set the Start and End times as shown below to eliminate any typos by the user while entering date and time.

After selecting the filter configurations, the user shall press ‘Apply’ button to view the filtered messages on the message log table. The user can reset the filter configurations to the default settings (the last 10 minutes) by pressing the ‘Reset’ button.(Note that the user can stop/start getting live messages by pressing ‘Stop/Start Getting Messages” button in the main panel below the message log table. This button shall toggle between “Stop “ and “Start” getting messages.).

Save and Import Filters

After making all the complex filter selections, the user shall have the option to save the filter configurations to a file. The saved file can later be imported to bring up the application with all the filter settings initialized to the previously saved settings. For this purpose, there shall be two buttons – “Save Filter” and “Import Filter” as shown below. When pressed, a new window shall pop up showing all the filter configuration files in the default folder $PHYSICS_DATA/apps/messagelog:

The user can navigate to any other desired folder from the default directory. The file chooser dialog shall allow the user to select only .properties files . When the user clicks the ‘Import Filter‘ button, the Filter panel section shall be populated with the saved filter configurations. Similarly, the user can save the filter settings by pressing “Save Filter” button, which brings up the File Chooser dialog where the user can type in a name of the file where the filter configurations get saved. All the filter configurations except for the dates, shall be saved.

Hide and Show Message Log Table Columns

The Message Log Viewer shall provide the flexibility of displaying only the table columns desired by the user. The user can pick and choose the columns that need to be displayed. This can be done by going to the ‘Advanced’ tab on the main panel and checking the desired check boxes as shown below.

After selecting the columns, the user can press ‘Apply’ button, which brings the user back to the main ‘Messages’ tab with message log table showing only the desired columns.

Make MCC ELog Entry

The user shall be able to save the visible contents of the Message Log table into MCC-Elog by pushing the button ‘Log Book’ on the top of the screen. This shall prompt the user to input the title of the entry that shows up in MCC-Elog. The contents of the MCC-Elog shall be as shown below:

Trouble Shooting

If you find that no messages are coming out in the Message log viewer.  Try restarting the server with:

lcls:
   log into lcls-daemon2 at laci
   cd /etc/init.d
   ./st.iocLogMsgServer stop

   to restart:
   ./st.iocLogMsgServer start

facet:
   log into facet-daemon1 at flaci
   cd /etc/init.d
   ./st.iocLogMsgServer stop

   to restart:
   ./st.iocLogMsgServer start

testfac:
   log into testfac-daemon2 at acctf
   cd /etc/init.d
   ./st.iocLogMsgServer stop

   to restart:
   ./st.iocLogMsgServer start

  • No labels