Using the Logbook

Before using the logbook, you need to install it. Download the logbook.msi installation package and the header file ComLogBook.h from the O’Reilly web site for this book at http://www.oreilly.com/catalog/comdotnetsvs (the logbook source files and a Windows 2000 help file are also available for download). Then install the msi file.

After installing the logbook application, all you have to do on the side of the application doing the logging is include the ComLogBook.h header file in your application. The ComLogBook.h header file defines four helper macros for logging, described in Table A-1. Insert these macros in your code. The macros collect information on the application side and post it to the logbook.

Table A-1.  The logging macros

Macro name

Description

LOGMETHOD( )

Traces a method call into the logbook

LOGERROR( )

Logs an error into the logbook

LOGEVENT( )

Logs an event into the logbook

LOGERROR_AND_RETURN( )

Logs an error into the logbook and returns in case of an error, or continues to run if no error has occurred

The macros can be used independently of one another and in every possible combination. For example, to trace a method call into the logbook, pass the method name as a string parameter to the LOGMETHOD( ) macro:

void CMyClass::MyMethod(  )
{
  LOGMETHOD("CMyClass::MyMethod");
  //Real work starts here
}

I recommend using LOGMETHOD( ) before doing anything else in the method body. Along with the method name, the macro logs all the required information mentioned earlier. Similarly, you can use LOGEVENT( ) to log events and LOGERROR( ) to log errors (see Example A-1).

Example A-1. Using the LOGERROR( ) and the LOGEVENT( ) macros

//Logging an error:
void CMyClass::MyMethod(  )
{
  LOGMETHOD("CMyClass::MyMethod");
  //Real work starts here
  /*
  some code that encountered an error with a pointer
  */
  LOGERROR(IID_MyInterface,E_POINTER,"CMyClass::MyMethod","The server   
                                         returned an invalid address");
  //Continue to run
}

//logging an event into the logbook: specify in free form text describing the event:
void CMyClass::MyMethod(  )
{
  LOGMETHOD("CMyClass::MyMethod");
  //Real work starts here
  /*
  some code that decides to log an event
  */
  LOGEVENT("The User is banging on the keyboard");
  //Continue to run
}
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset