====== Log4Net ======
===== VB ===== Private Shared mLog As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString) Dim log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString & "." & System.Reflection.MethodBase.GetCurrentMethod().ToString()) log4net.GlobalContext.Properties("EventID") = 110 log4net.LogManager.GetRepository().Configured ===== C# ===== log4net.Config.XmlConfigurator.Configure(); private static log4net.ILog mLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString()); ===== ListBoxAppender ===== Public Class ListBoxAppender Inherits log4net.Appender.AppenderSkeleton Private Delegate Sub AppendDelegate(ByVal msg As String) Public Shared ListBox As ListBox Protected Overloads Overrides Sub Append(ByVal loggingEvent As log4net.Core.LoggingEvent) Dim msg = Me.RenderLoggingEvent(loggingEvent) If Not ListBox.InvokeRequired Then AppendInternal(msg) Else ListBox.BeginInvoke(New AppendDelegate(AddressOf AppendInternal), msg) End If End Sub Protected Overloads Sub AppendInternal(ByVal msg As String) If ListBox Is Nothing Then Return ListBox.Items.Add(msg) ListBox.SelectedIndex = ListBox.Items.Count - 1 End Sub End Class ===== LoggerMatchFilter ===== ===== Property in Filename ===== ===== Already Configured? ===== * [[http://neilkilbride.blogspot.de/2008/04/configure-log4net-only-once.html]] if (!log4net.LogManager.GetRepository().Configured) { log4net.Config.XmlConfigurator.Configure(); }