Which ITLogLib variant should I use?

 

 

Development
environment

Recommended ITLogLib variant

Comment

Windows .Net language platform

Visual Basic .NET

ITLogLib/.NET

 

Visual C#

ITLogLib/.NET

 

Visual J#

ITLogLib/.NET

 

Visual C++ .NET

ITLogLib/Visual C++

Use ITLogLib/Visual C++ for C++-only projects, because this variant provides convenient output streaming operators (<<) and has real automatic destructor support (sends ITLogMsg instances immediately at the end of their scope).

ITLogLib/.NET

Use ITLogLib/.NET especially in .NET projects which use components written in different .NET languages which should use the same logchannels, output filter settings etc.
Note:

You must explicitly call ITLogMsg.Send() to send logmessages, as the Garbage Collector would send them very late (and sometimes not until the end of your program).

Other .NET languages, incl. scripting languages

ITLogLib/.NET

 

Standard Windows languages

Visual Basic 6

ITLogLib/COM

You could also use ITLogLib/Win32, but that would be very inconvenient.

VBA hosts

ITLogLib/COM

 

VBScript hosts

ITLogLib/COM

 

Visual C++ 6

ITLogLib/Visual C++

You could also use ITLogLib/COM from VC, but this would be inconvenient and requires COM DLL registration at deployment.

You could also use ITLogLib/Win32 from VC, but that would be inconvenient. And the deployment is essentially the same for both variants.

Other C++ compilers

ITLogLib/Standard C++

ITLogLib/Standard C++ builds on ITLogLib/Win32 and provides an object-oriented C++ interface. Direct use of ITLogLib/Win32 is not needed in this case.

Visual J++ 6

ITLogLib/COM

 

Delphi 6 and 7

ITLogLib/Delphi

ITLogLib/Delphi builds on ITLogLib/Win32 to provide an object-oriented Delphi interface.

ITLogLib/Delphi compared to ITLogLib/COM:

· Adapted especially for Delphi.
Supports optional arguments, for instance (not so the COM DLL wrapper).

· Higher performance by avoiding the COM marshalling and unmarshalling overhead.

· Doesn’t require COM DLL registration for deployment.

Advantages of using ITLogLib/COM (instead of ITLogLib/Delphi):

· Supports logging in mixed COM language projects.

· Supports automatic Free() (which included Send()) of ITLogMsg instances at the end of their scope (by the COM extensions which are built into the Delphi compiler).

Note:

You could also directly use ITLogLib/Win32 from Delphi, but that would be very inconvenient.

Pure Java on Windows and Windows languages which can use DLLs

Compatible pure Java compilers

ITLogLib/Java

ITLogLib/Java builds on ITLogLib/Win32 to provide a real object-oriented Java interface using the Java Native Interface (JNI).

C Compiler

ITLogLib/Win32

 

Simple compiled or scripting languages (e.g. InstallShield’s InstallScript

ITLogLib/Win32

Practically all Windows programming languages which support the use of Windows DLLs (with WINAPI / stdcall calling convention) to be able to use the WINAPI functions and to be extensible.

 

See also:

§      Which ITLogLib variants do exist?

§      Architecture of ITLogLib