i-scream documentation viewer

logging.txt

I-Scream Logging System - initial draft
=======================

tdb1, 29/11/2000

This document aims to cover the Logging System in the
i-Scream Central Monitoring System. Two areas will be 
covered, looking at the system from two angles.

  - Monitoring the System (user)
  
  - Utilising the Logging System (developer)


Monitoring the System
=====================

The Central Monitoring Systems provides a configurable 
logging system. A variety of loggers can easily be chosen 
betweeen by simply changing some settings in the system
configuration. The system also provides an extendable 
interface so further logging mechanisms can easily be added. 
This will be covered further later on.

How it works
------------

The system has one central point of logging for the server 
components (not the host or the clients). This functionality 
is provided over a CORBA system, but this is transparent to 
the end user. As each component is started up a request is 
made to the central naming service for the logging system, 
and then log messages can be sent straight to it.

Types of Logging Implementations
--------------------------------

The messages are passed over CORBA into the logging 
component. Here they are formatted with the date and time 
before being output to the final "destination". The system, 
as standard, provides a range of loggers, each with a 
different method of logging. At present this list stands at;

  - Screen Logger (ScreenLogger.class)
    A basic logger that outputs all messages to the console 
    on which the CORE was started up. This is the simplest 
    way of seeing what's happening.
  
  - File Logger (FileLogger.class)
    Similar to the screen logger, except all output is 
    written to a named file. This is better for ongoing 
    logging.
  
  - Multi Logger (MultiLogger.class)
    This logger, at present implements both of the above 
    loggers. It is intended to allow more versatility from 
    the system. It is planned to allow this logger to 
    support as many, or as few, or these loggers as is 
    required.
  
  - Simple GUI Logger (SimpleGUILogger.class)
    A basic GUI logger that just dumps the output to a 
    window on the console machine. Lacks many nice features, 
    such as the window scrolling.
  
  - Swing GUI Logger (SwingGUILogger.class)
    A more advanced version of the above logger, more 
    polished and much nicer to use. Can be made full screen 
    for use on a permanent logging station.

Choosing a Logger
-----------------

Choosing which logger you which to use is simple. In the 
CORE directory there should be a default.properties file. 
This file governs the initial bootstrapping of the server. 
The following two entries are required by the logging 
system.

  uk.ac.ukc.iscream.LoggerClass=ScreenLogger
  uk.ac.ukc.iscream.LoggerClassParam=

The "LoggerClass" entry specifies the name of the logger to 
use. For example, in the above case the ScreenLogger has 
been selected. Note that the .class extension is *not* 
added. This is all that is required to tell the system to 
utilise the ScreenLogger.

The second entry, "LoggerClassParam" is only required by the 
File Logger (and therfore the Multi Logger) to specify which 
file to write to. All the other loggers do not require this 
to be set. However, future loggers may use this, and 
additional parameters, to configure themselves.

Setting a Verbosity Level
-------------------------

The Logging system also provides a range of verbosity 
levels, so the output can be further tailored to suit the 
needs of the end user. The lower numbered levels give only 
the most important messages, whilst high numbers give a lot 
of information only really useful for debugging. These are 
specified as follows;

  FATAL   - (0) Fatal or Critical Errors
  ERROR   - (1) All Errors
  WARNING - (2) Warnings
  SYSMSG  - (3) System Component messages
  SYSINIT - (4) System Component initialisation
  DEBUG   - (5) All debugging messages

The required verbosity setting can be chosen in the 
default.properties configuration file - the same one in 
which the logger was specified above.

The following setting should be setting to one of the 
numbers above. In this case it has been set to maximum 
verbosity, the DEBUG level.

uk.ac.ukc.iscream.Verbosity= 5

What do the loggers not do ?
----------------------------

The loggers only monitor the state of the server. They do 
not monitor activity on either the host or clients, although 
they may well receive information from components intefacing 
with them.

They also do not log anything to do with the actual 
monitoring of hosts, but rather they monitoring the 
"monitoring system". The information provided by the loggers 
is purely for analysing the activity of the Central 
Monitoring System, and for identifying failures within the 
system.


Utilising the Logging System 
============================

To be added;

  - developing loggers
  - utilising a logger in the server


About
=====

This document was written by Tim Bishop [tdb@i-scream.org] for 
use by the team working on a 3rd year Computer Science 
project called "i-scream". More details can be found on the 
project website;

http://www.i-scream.org