Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Within SEAL: Start the cmlog viewer by starting its Eclipse View. That is, Window -> Show View (you may need to select Other ... at this point) SEAL -> cmlog. Once started, use the File -> Get Messages dialog to connect to a cmlog server.

Stand-Alone viewer:

  • Option 1: On the CA network, run $LCLS_ROOT/bin/cmlogviewer from the command-line.
  • Option 2: On the CA network, from the lcls home screen, selec "Message Viewer".

...

  • Option 3: From a linux workstation with access to AFS, run /afs/slac/g/lcls/physics/bin/cmlogviewer

Getting Some Messages

Under the "File" menu, select "Get Messages...".  Doing so will open a dialog box that allows you to specify the message server, filter messages by content, and indicate whether to listen for live messages, or only to search through old messages.

...

The Retrieved Messages filter dialog is in the top left hand corner of a message window. This dialog normally set to "No Filter," meaning that all messages are retrieved and displayed by the viewer. However, you can specify that only those messages conforming to some filter pattern are retrieved. See the example in the screenshot below (which was to retrieve all messages except those whose text contains SIPMAIN).

Retrieved Message Filter Pattern Examples

Searching for Messages

There are two modes of searching (aka filtering). First is the simple search. In this case, just type the text you're interested in into the Filter dialog box. Second allows more complex searches, which use search expressions (see below).

Note that both kinds are CASE SENSITIVE

Simple SearchThese are some examples of the use of the message Filter:

If you simply want to retrieve only those messages containing some text, then just put the text in the dialog box and hit return. For instance, if you want to retrieve only messages with QUAD in the them.

...

Retrieve only severity EROR messages (note that you have not had to specify the Severity field, since these simple searches are on all fields).

Code Block
EROR

Expression Search

More complicated searches, such as those on specific fields other than the Text field, or those involving negation , must be preceded by ":".

Note - there is a bug here: in the expression search, the column names must be given all Lower Case (eg text), even though the actual column heading as printed in the GUI, is Capitalized First Letter (Text).

Retrieve only messages from the LCLS EPICS system:where the message Text includes 'failed'.

Code Block
:(facilitytext like 'LCLSfailed')

Retrieve all the messages except those where the text contained some string - this uses the '!' (not) operator. Eg NOT containing DpSlc or physicssMatlab:

Code Block
:!(text like 'SIPMAIN')

...

facility like 'DpSlc' || facility like 'physicssMatlab')

Anther even more restrictive filter cuts out talkative systems leaving many SLC messages:

Code Block

:!(facility like 'DpSlcKlys' || facility like 'Alarm' || facility like 'physics') || facility like 'ChannelWatcher')

It's also useful to cut out messages whose text itself contains some pattern. Here's an example having cut out messages whose text contain "SIPMAIN".

Image Added

Writing Messages from Matlab to cmlogviewer

You can use the Err package to write from Matlab to cmlog.

Initialize Err with aidainit. Then just once, you must get an Err object using its getInstance method. Give the name of your program to getInstance, like getInstance('Myprogram') then all of your subsequent messages will be labeled in cmlog as coming from the facility 'Myprogram'. After that, you can issue messages to cmlog using the 'log' method Err, or issue messages to cmlog and print them to the local screen using the 'logl'.

Examlple:

Code Block

>> aidainit;
Aida client initialization completed
>> e = Err.getInstance(Myprogram');
>> e.log('Logs this message in cmlog only'); 
>> e.logl('Logs this message in cmlog and to the screen');
Thu May 20 16:37:48 PDT 2010: Logs this message in cmlog and to the screen

Programmers' Notes

To build on production

Use iclipse - to set yourself up with Eclipse in your "own" production subdir (This procedure is the same as for SEAl in general, where for SEAL the product is feature.seal.application and double-click on seal.product. When building SEAL you also need the CSS stuff in physics.css).

  • mount lcls cvs repo.
  • Expand physics/seal. Select All in physics/seal, then check them out (not checkout physics/seal itself, because of funny subdir issue in Eclipe)
  • Select feature.cmlogviewer; double-click on cmlogviewer.product.
  • Go to Exporting -> Eclipse Product Export Wizard
  • Override the Product Configuration "Root directory" to new version number, eg "2.2"
  • Check that Destination is /usr/local/lcls/physics/apps/cmlogviewer/product/
  • Build
  • Check that the output was built in the destination
  • Test it (without using the script therefore)
    • Optionally, set CMLOG_HOST and CMLOG_PORT
    • $LCLS_ROOT/physics/apps/cmlogviewer/product/<version>/cmlogviewer -data $HOME/.cmlogviewer
    • Ignore Gtk-WARNING
  • Repoint the "current" link to the new production: Eg from /usr/local/lcls/physics/apps/cmlogviewer/product/ execute:
    rm current && ln -s 2.2 current
  • check executes from lclshome

Known Issues

In Jira, Cmlog Viewer is a component in the SEAL Project.
Summary of known Jira Issues: https://jira.slac.stanford.edu/secure/IssueNavigator.jspa?reset=true&mode=hide&sorter/order=ASC&sorter/field=priority&pid=10447&component=10850