Introduction

This package substitues the obsolete logService. A new requirement whereby database technologies other than ORACLE had to be dropped came in around spiring 2007. This new requirement meant the re-writing of the logService package, which was higly dependent on MySQL. This opportunity was taken to refactorize the code, especially the log manager, which was never very user friendly. The database access in C++ is done using the CORAL interface, which hides the underlying technology. For the log manager, JAVA was the language chosen, since it brings in the flexibility requiered to make this tool more intuitive. The resulting java application can be run from the console, or remotely using the Java Web Start technology.

Known issues/bugs

In the Log Manager, when righ-clicking on the Messages Table (right hand side panel) or Partition Table (left hand side panel) a Refresh button pops up. This is used to update the current view of partitions and messages, respectively. Refreshing these objects only works if one right-clicks the mouse without moving it; that is, press and release without changing the X and Y pointer of the mouse. This may be a problem with Java. In the meantime, one can also perform a Refresh via the options in the top menu File: 'Refresh tree' and 'Refresh table'.

To be implemented

Add an option to display statistics, internal and from IS.

Changes from previous release

The Log Service has migrated to the Offline database. During this transition and to be back compatible, the Log Manager has the option to either access the INTR or the Offline (default) databases. Fix bug: If the log message parameter size is larger than 4,000 characters, the logger crashed due to a misleading excpetion thrown by Oracle that invalidated a CORAL variable. Messages are now cropped if their field size is larger than 4,000 character.

The user can now do a search based on the run number. On the left hand side panel of the Log Manager, how messages are searched has changed from Partition->User->SessionID to Partition->User->Runnumber. WARNING: messages between runs are associated to the last run of the partition. If it is the first run for a partition, the messages before the first run will be associated to run number 0. This means that messages produced during starting up (until the next start of run) may be associated to a runnumber started days before.

Example applications

None exist at the moment.

Applications

Log Manager

Usage: log_manager 
Instruction on how to use to be written.
The Log Manager can also be run using Java Web Start technology from the link:

If possible, it is preferrable to launch this tool as a Java application rather than from the link above.

lsReceiver

Description: This application subscribes to the MRS service to receive and log on a database messages produced by TDAQ applications.
Usage: lsReceiver [-p partition-name] [-u user-name] [-n IS-server-name] [-s threshold-size] -c connect-string [-S subscribe-expression]
Options/Arguments:
        -p partitionName     Partition name
        -u userName          User name
        -n ISserverName      Name of the Information Service to publish the message rate into.
        -c connectionString  Database connection string. 

Test units

logTest

Description: Test binary for the Log Receiver application.
Usage: logTest -c connect-string [-p partition-name] [-l complexity-level]
Options/Arguments:
        -p partitionName      Partition name
        -l level           Level of Complexity of the test [1: open/close - 2: tests the Log Service Infrastructure].
        -c connectionString  Database connection string. 

Utilities

logSelect

Description: Application to retrieve log messages for a given partition according to the search criteria specified. By default, messages are dumped on std::cout.
Usage: logSelect -c connect-string -p partition-name [-i message-name] [-m machine-name] 
                 [-a application-name] [-l time-low] [-u time-up] [-s severity]  
                 [-x text] [-r parameters] [-d order-list] [-e max-rows] [-f offset-row]
Options/Arguments:
        -p partitionName      Partition name
        -c connectionString   Database connection string. 
        -i message-name       Message name or ID.
        -m machine-name       Machine name where the message was issued.
        -a application-name   Application name where the message was issued.
        -l time-low           Lower time threshold.
        -u time-up            Upper time threshold.
        -s severity           Message severity:
                                 1 - FATAL
                                 2 - ERROR
                                 3 - WARNING
                                 4 - DEBUG
                                 5 - INFORMATION
                                 6 - SUCCESS
        -x text               Text in the message body.
        -r parameters         Message parameters.
        -d order-list         Parameter to sort the messages by.
        -e max-rows           Maximum number of rows to retrieve from the database; 100 by default. If 0, all entries are retrieved.
        -f offset-row         Offset in the table to retrieve the messages from.

logDelete

Description: Application to remove log messages for a given partition according to the search criteria specified.
Usage: logDelete -c connect-string -p partition-name [-i message-name] [-m machine-name] 
                 [-a application-name] [-l time-low] [-u time-up] [-s severity]  
                 [-x text] [-r parameters]
Options/Arguments:
        -p partitionName      Partition name
        -c connectionString   Database connection string. 
        -i message-name       Message name or ID.
        -m machine-name       Machine name where the message was issued.
        -a application-name   Application name where the message was issued.
        -l time-low           Lower time threshold.
        -u time-up            Upper time threshold.
        -s severity           Message severity:
                                 1 - FATAL
                                 2 - ERROR
                                 3 - WARNING
                                 4 - DEBUG
                                 5 - INFORMATION
                                 6 - SUCCESS
        -x text               Text in the message body.
        -r parameters         Message parameters.

logGetPartitionNames

Description: Application to retrieve the list of partition names.
Usage: logGetPartitionNames -c connectionString 
Options/Arguments:
        -c connectionString  Database connection string. 

logCleanDatabase

Description: Application to clean the database by removing all the existing tables.
Usage: logCleanDatabase -c connectionString 
Options/Arguments:
        -c connectionString  Database connection string.