version 1.1, 2003/02/28 21:34:05
|
version 1.1.2.1, 2003/02/28 21:34:05
|
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
|
<html> |
|
<head> |
|
<title>PEP # ?: Pegasus 2.2 Logging Improvements</title> |
|
<link rel="stylesheet" type="text/css" href="http://www.soft-hackle.net/md.css"> |
|
</head> |
|
|
|
<body> |
|
<table > |
|
<tr> |
|
|
|
<td> |
|
<img height="70" src="http://www.opengroup.org/images/pegicon2.gif" width="70" border="0"> |
|
</td> |
|
<td> |
|
<h1>PEP # ?: Pegasus 2.2 Logging Improvements</h1> |
|
</td> |
|
</tr> |
|
</table> |
|
|
|
<table class="comment"> |
|
<tr align="left"> |
|
<th>Type</th><th>Status</th><th>Approveers</th> |
|
</tr> |
|
<tr> |
|
<td>Architecture</td><td>Draft</td><td>Pegasus architecture team</td> |
|
</tr> |
|
</table> |
|
<table class="comment"> |
|
<tr align="left"> |
|
<th>Version</th><th>Date</th><th>Author</th><th>Comments</th> |
|
</tr> |
|
<tr> |
|
<td>1.0</td><td>Fri Feb 21 09:39:19 2003</td><td>IBM/Mike Day |
|
</td><td><i>proposed outline, to be completed in further revisions</i></td> |
|
</tr> |
|
</table> |
|
<hr> |
|
|
|
<h2>Summary</h2> |
|
<p> |
|
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 |
|
<code>syslog daemon</code> on Unix. |
|
</p> |
|
|
|
|
|
<h2>Problem Solved/Feature Added</h2> |
|
|
|
<p> |
|
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.). |
|
</p> |
|
|
|
<h3>Integration with platform's native logging service</h3> |
|
<p> |
|
Basic support for logging to text files should be retained in |
|
Pegasus 2.2. However, the <code>Logger</code> class needs to |
|
be modified to defer to system logging services including at |
|
least the Unix <code>syslog daemon</code> and the Windows |
|
event log. |
|
</p> |
|
|
|
<h3>Definition of Pegasus Logging Components</h3> |
|
|
|
<p> |
|
Pegasus logging components need to be defined and supported in |
|
the <code>Logger</code> class. Logging needs to be |
|
configurable on a per-component basis. |
|
</p> |
|
<p> |
|
A tentative list of Pegasus logging components includes the |
|
following: |
|
<dl class="enumerated"> |
|
<dt>Security</dt> |
|
<dd>Authentication and authorization events</dd> |
|
<dt>Connection</dt> |
|
<dd>Connection and termination of clients</dd> |
|
<dt>Repository</dt> |
|
<dd>Repository write events</dd> |
|
<dt>Provider</dt> |
|
<dd>Provider load/unload and operation execution events</dd> |
|
<dt>Exceptions</dt> |
|
<dd>Errors and Exceptions</dd> |
|
<dt>Lifetime</dt> |
|
<dd>Start, stop, install, remove.</dd> |
|
</dl> |
|
</p> |
|
|
|
<h3>Definition of Pegasus Log Entry Classifications</h3> |
|
|
|
<p> |
|
Each log entry should be classified consistently with the Unix |
|
<code>syslog</code> classes which are defined below in |
|
priority order: |
|
|
|
</p> |
|
<p> |
|
<dl class="enumerated"> |
|
<dt>Degug</dt> |
|
<dd>Information that enables problem solving in the field</dd> |
|
<dt>Info</dt> |
|
<dd>General low-priority nominal events</dd> |
|
<dt>Notice</dt> |
|
<dd>Events that signal a change in state or execution path</dd> |
|
<dt>Warning</dt> |
|
<dd>Events that may be a problem or may indication a future problem</dd> |
|
<dt>Err</dt> |
|
<dd>Error, nominal</dd> |
|
<dt>Crit</dt> |
|
<dd>Error, serious.</dd> |
|
<dt>Alert</dt> |
|
<dd>Event (not necesarily an error) that requires notification to other components, |
|
services, or programs.</dd> |
|
<dt>Emerg</dt> |
|
<dd>Fatal error or event that requires immediate response</dd> |
|
</dl> |
|
</p> |
|
|
|
<h3>Solution Requirements</h3> |
|
<div class="comment"> |
|
<ol class="enumerated"> |
|
<li>Easy for the customer to configure in the |
|
field. This includes activating/deactivating logging |
|
classifications and managing log files.</li> |
|
<li>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. </li> |
|
<li>NLS enabling. Log messages must be separated from the |
|
source code to allow for translation and |
|
internationalization. </li> |
|
</ol> |
|
</div> |
|
|
|
<h3>Notes</h3> |
|
<p> |
|
The current logging support for Pegasus is in the source |
|
files: |
|
|
|
<code>$PEGASUS_ROOT/src/Pegasus/Common/Logger.h</code> <br> |
|
and <code>$PEGASUS_ROOT/src/Pegasus/Common/Logger.cpp</code> |
|
</p> |
|
<p> |
|
Chip Vincent has some Pegasus logging code that is integrated |
|
into IBM Director that may be useful. |
|
</p> |
|
|
|
<h3>Proposed Solution</h3> |
|
|
|
<h2> Proposed schedule.</h2> |
|
|
|
<h2>Risk Mitigation</h2> |
|
|
|
<hr> |
|
<address><a href="mailto:mdday@us.ibm.com">Michael Day</a></address> |
|
<!-- Created: Fri Feb 21 08:22:38 EST 2003 --> |
|
<!-- hhmts start --> |
|
Last modified: Fri Feb 21 13:16:47 EST 2003 |
|
<!-- hhmts end --> |
|
</body> |
|
</html> |