Log Engine Overview

This topic describes the key concepts of Log Engine.


Used to record events of interest to the user, of which they may not be immediately aware, or of high importance as costs are incurred, such as telephone calls. These events can be retrieved by a viewer application and displayed to the user.

Architectural relationships

The Log Engine is split into a wrapper (a stub interface) that is present on all UI variants, and an actual logging DLL that may or may not be present. On UI variants on which the actual logging engine is not present, calls to the wrapper will have no effect. Programs written for multiple UI variants should use the wrapper only. Programs for a particular UI variant on which the log engine is present can use it directly.


The API has five key concepts: log engine wrapper, log client, event, view, and filter.

Log engine wrapper

The log engine wrapper provides simple interfaces to record events, and is present on all UI variants. The wrapper interfaces are CLogWrapper and CLogBase.

Log client

The log client is the main direct interface on the log engine. It is used to add, delete, and change log events, and allows log administration. It is also used to create filtered views of events.

The log client interface is CLogClient.


A log event is an entry in the log. Events have a fixed number of data fields, though some fields do not apply to all events.

The event interface is CLogEvent.


A view allows a filtered list of events to be accessed. Views are provided for the main event log (CLogViewEvent) and for recent events only (CLogViewRecent).


A filter specifies the type of events that appear in a view. The filter interface is CLogFilter.

Related concepts