Fermi Physics Class Libraries Module: Error Logger
ZOOM Error Logger
The ZOOM Error Logger package is meant to meet the needs of Run II (D0 and CDF)
offline (and possibly higher-level online) code for a unified message logging
and statistics facility.
This package provides:
- Uniform formatting of log messages
- Central control of logging to multiple destination logs
- Throttling by severity of messages to each destination
- Setting limits on appearances (by message id) of each sort of message
- Error statistics by message id, module, and subroutine
Collective (multiprocess) error reporting
(with the user supplying the communications mechanism)
Error message history, via a filtered list of ErrorObj's.
reporting via error messages
Some design points of this package are
- The semantics of providing information to a log message are those
of streaming objects into the log. Thus the full power of the
<< mechanism for any object that may be sent to an ostream is
- It is assumed that most of the time, messages are not being logged.
The burden in time incurred by the presence of the mechanism is kept
absolutely minimal in such circumstances.
- Much attention has been paid to the potential for use in the D0 Level 2
environment, in which efficienciy considerations are extreme and
notable restrictions are placed on C++ feature usage. The design
is such that customization for that purpose can be done with maximal
retention of the ErrorLogger code.
Although this package did not start out with a design goal of becoming a
not a multi-process message gathering mechanism, the
destination allows an experiment to set up collective error message handling,
based on whatever communications mechanism they choose to employ.
Given this collection mechanism, the need for a "circular save buffer"
(which had previously been called ELsaveBuffer) is also greatly
The necessary functionallity is met by a destination
which places error objects onto a user-accessible std::list.
This package may be obtained from the following sources:
The ZOOM reference copy
is located on the Fermilab fnalu Unix cluster
(for example, on
in directories rooted at
For CDF or D0 users,
a reference copy is maintained in the standard CDF or
D0 manner on their respective Unix systems.
The package is kept in a CVS repository managed by SoftRelTools.
A file cvs.setup
provides a script for setting up this and/or other ZOOM products.
There are also coded samples of how to use the package:
There is also a mechanism for integrating the
mechanism with the Error Logger, using a class derived from ZMexception
ZOOM Home Page -
Fermilab at Work -
Last modified: September 22, 2000