PathEngine home previous: Overviewnext: Decoding Query Logs
Contents, Tools, Query Logging, Generating Query Logs

Generating Query Logs

Query logging is currently only supported on the PC platform and with dll linkage.
Support for logging on other platforms, and with static linkage may be provided in the future.

A prebuilt query logging dll is provided with the full version of the SDK, at: 'SDKRoot/bin/QueryLoggingWrapper.dll'.
Source code for this dll is included in the source archives, in the 'QueryLoggingWrapper' project.

Running with query logging

To run with query logging you can either specifically load the query logging wrapper from within your application, or, alternatively (to avoid rebuilding your application), you can rename and replace the main dll with the query logging wrapper.

The query logging wrapper provides the same entrypoint as the main dll. When loaded, the query logging wrapper then internally loads the main dll.
To support both methods of running with query logging, the wrapper first attempts to load 'PathEngine_renamed.dll'. If this fails the wrapper then attempts to load 'PathEngine.dll'.

When loading the query logging wrapper explicitly, therefore, it is important to ensure that 'PathEngine_renamed.dll' is not found, and that 'PathEngine.dll' is found.
Refer to the MSDN documentation of LoadLibrary() for details about the dll search path.
For simplicity it's recommended to place both the main dll and the wrapper dll in the same directory as the calling application.

When using the rename and replace method, simply rename the main dll to 'PathEngine_renamed.dll' and the query logging wrapper to 'PathEngine.dll'.
Don't forget to rename these files back when you've finished logging!

The query log file

The query log is directed to the binary file 'queryLog.bin' in the application's current directory (during the call to the wrapper's entry point).
If a file already exists with this name then this file will be replaced.

Logging large buffers

Some methods in the API take potentially large buffers.
To avoid the main log file becoming unworkably large these buffers are stored in separate files, with a file index stored in the main log.

Byte buffers, as passed in to methods such as iPathEngine::loadMeshFromBuffer() are store in files starting from 'loggedDataBuffer1.bin'.

Source content, as passed in to methods such as iPathEngine::buildMeshFromContent() are store in files starting from 'loggedSourceContent1.bin'.


Documentation for PathEngine release 5.17 - Copyright © 2002-2008 PathEnginenext: Decoding Query Logs