SoftwareShield ClientProtector COM Component > Debug and Release Server Versions > Outputting Debug Log-Files

Outputting Debug Log-Files


As described in the section on Controlling Debug Output, when linking to the debug ClientProtector server you can easily control two dimensions of the debug information which is output:

  • The level of detail output. (Either "coarse" or "detailed")

  • The method of output. (Any of: debug strings, log files and modal dialogs)

You control this by using the values defined in the CPDEBUGFLAGS enumeration exposed by the ClientProtector COM server. These values are simply combined using bit-wise OR operators to achieve the desired effect and passed in the "DebugFlags" parameter of the StartUp function call.

To control debug log-file messages, four enumerations can be used (in combination with any others):

  • DBG_LOG_COARSE - ("Log File Coarse") Use to output to the log-file debug messages only when an important event happens inside the ClientProtector.

  • DBG_LOG_DETAIL - ("Log File Detailed") Use to output to the log-file debug messages at virtually every internal procedure as it occurs inside the ClientProtector.

  • DBG_ALL_COARSE  - ("All Methods Coarse") Use  to output to the log-file debug messages (and all other debug output types) only when an important event happens inside the ClientProtector.

  • DBG_ALL_DETAIL - ("All Methods Detailed") Use  to output to the log-file debug messages (and all other debug output types) at virtually every internal procedure as it occurs inside the ClientProtector.

For example, if we only wanted debug messages logged we would pass DBG_LOG_DETAIL in the DebugFlags parameter of the StartUp call.  Or, if we wanted to output only coarse messages into the log file but fine dialog messages we would combine them with a bit-wise or operator as in: (DBG_LOG_COARSE | DBG_DLG_DETAIL).  If we simply want to output all detailed information using every method, we can just use the DBG_ALL_DETAIL value.

An example call might look like this (C++ code):

// initialize the ClientProtector and Start it up
SSCProtector1->StartUp(MainLicenseFileName, MainLicenseFilePassword,
          GlobalAuthorizationCodePassword, FingerPrintOptionsCode,
          (DBG_LOG_COARSE | DBG_DLG_DETAIL), &return_code);

The log-file itself will be created as a text file in the application directory. See Controlling Debug Output for more details.

Related Topics