Peoples,
I have the situation where I 70% of my components are written in .NET, but
quite few large legacy components are hanging around in VB6.
I would like to consolidate my logging framework, and as all the vb6
components use the same custom built logging class, I would like to change
the vb6 logging class to use Log4NET.
Has anybody used Log4Net from old COM based languages? I have a basic system
working, I had to write a COM based wrapper class library in .NET - such as
in the code below - but if the log4net community has a default or properly
written and tested interface I would much rather use that. Any plans on
including such an interface in a future version of log4net? Also I have the
obvious problem of missing stack traces, line numbers etc. I think this
would be a much sought after feature that would be really good for many
large companies that are slowly migrating to .NET.
Cheers
Following code has been copied from a class library in Visual Studio 2003.
Imports System
Imports System.IO
Imports log4net
Imports log4net.Config
<ComClass(BPC_Log4Net.ClassId, BPC_Log4Net.InterfaceId,
BPC_Log4Net.EventsId)> _
Public Class BPC_Log4Net
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "EF01DF44-C835-411A-8F33-A3BC048E69AD"
Public Const InterfaceId As String =
"9EFF2B48-C6CC-428B-99F5-5332B91D1EFC"
Public Const EventsId As String = "7FD05B38-36B7-425C-B850-9BB05BFC1D2B"
#End Region
Private ReadOnly log As log4net.ILog = LogManager.GetLogger("COSOL")
Public Sub LogMessage(ByVal MessageIn As String, ByVal MessageType As
String)
log.Debug(MessageIn)
End Sub
' A creatable COM class must have a Public Sub New()
' with no parameters, otherwise, the class will not be
' registered in the COM registry and cannot be created
' via CreateObject.
Public Sub New()
MyBase.New()
Dim path As String = " log4netConfig.xml"
Dim fi As FileInfo = New FileInfo(path)
log4net.Config.DOMConfigurator.Configure(fi)
log.Debug("Started")
End Sub
End Class