PEP # ?: Pegasus 2.2 Logging Improvements

TypeStatusApproveers
ArchitectureDraftPegasus architecture team
VersionDateAuthorComments
1.0Fri Feb 21 09:39:19 2003IBM/Mike Day proposed outline, to be completed in further revisions

Summary

This proposal is to upgrade the Pegasus logging component and logging points to the standard expected for commercial daemon services and to to allow Pegasus logging messages to be written to native platform logging systems such as the syslog daemon on Unix.

Problem Solved/Feature Added

The logging component in Pegasus 2.1 is minimally implemented and rarely used. There are too few logging points in the source code and logging is not configurable by component (e.g., security, read/write events, connection events, etc.).

Integration with platform's native logging service

Basic support for logging to text files should be retained in Pegasus 2.2. However, the Logger class needs to be modified to defer to system logging services including at least the Unix syslog daemon and the Windows event log.

Definition of Pegasus Logging Components

Pegasus logging components need to be defined and supported in the Logger class. Logging needs to be configurable on a per-component basis.

A tentative list of Pegasus logging components includes the following:

Security
Authentication and authorization events
Connection
Connection and termination of clients
Repository
Repository write events
Provider
Provider load/unload and operation execution events
Exceptions
Errors and Exceptions
Lifetime
Start, stop, install, remove.

Definition of Pegasus Log Entry Classifications

Each log entry should be classified consistently with the Unix syslog classes which are defined below in priority order:

Degug
Information that enables problem solving in the field
Info
General low-priority nominal events
Notice
Events that signal a change in state or execution path
Warning
Events that may be a problem or may indication a future problem
Err
Error, nominal
Crit
Error, serious.
Alert
Event (not necesarily an error) that requires notification to other components, services, or programs.
Emerg
Fatal error or event that requires immediate response

Solution Requirements

  1. Easy for the customer to configure in the field. This includes activating/deactivating logging classifications and managing log files.
  2. Provider relevant and sufficient information. There must be sufficient logging points throughout the Pegasus source code to enable all relevent events to be logged, and to provide sufficient information about each event to solve problems, handle events, and generally manage the lifetime and utility of Pegasus.
  3. NLS enabling. Log messages must be separated from the source code to allow for translation and internationalization.

Notes

The current logging support for Pegasus is in the source files: $PEGASUS_ROOT/src/Pegasus/Common/Logger.h
and $PEGASUS_ROOT/src/Pegasus/Common/Logger.cpp

Chip Vincent has some Pegasus logging code that is integrated into IBM Director that may be useful.

Proposed Solution

Proposed schedule.

Risk Mitigation


Michael Day
Last modified: Fri Feb 21 13:16:47 EST 2003