<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="%env{TEMP}\DEBUG.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="2MB" /> <staticLogFileName value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <appender name="CurrentFile" type="log4net.Appender.FileAppender"> <file type="log4net.Util.PatternString" value="%env{APPDATA}\MyApp\Current.log" /> <appendToFile value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message%newline" /> </layout> <!--<filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter>--> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss} [%thread] %-5level [%logger] %message%newline" /> </layout> </appender> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" > <param name="ApplicationName" value="MyApp" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5level [%logger] %message%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter> </appender> <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender"> <mapping> <level value="INFO" /> <foreColor value="White, HighIntensity" /> </mapping> <mapping> <level value="WARN" /> <foreColor value="Yellow, HighIntensity" /> </mapping> <mapping> <level value="ERROR" /> <foreColor value="Red, HighIntensity" /> </mapping> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss} [%logger] %message%newline"/> </layout> </appender> <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> <to value="rcpt@example.org" /> <from value="from@example.org" /> <subject value="Fehler" /> <smtpHost value="smtp.example.org" /> <username value="sender@example.org" /> <password value="SECRET" /> <authentication value="Basic" /> <bufferSize value="512" /> <lossy value="true" /> <evaluator type="log4net.Core.LevelEvaluator"> <threshold value="ERROR"/> </evaluator> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %-5level %logger - %message [ProfileId: %property{ProfileId}, BezugsNr: '%property{BezugsNr}']%newline"/> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> <appender-ref ref="DebugFileAppender" /> <appender-ref ref="CurrentFile" /> </root> <logger name="Namespace.Class"> <level value="INFO" /> <appender-ref ref="ConsoleAppender" /> </logger> </log4net> </configuration>
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
log4net.Config.XmlConfigurator.Configure(); private static log4net.ILog mLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.ToString());
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
<appender name="ListBoxAppender" type="ProjectName.ListBoxAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d{HH:mm:ss} %-5level [%thread] [%logger] %message" /> </layout> <!-- <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> <levelMax value="FATAL" /> </filter> --> </appender>
<filter type="log4net.Filter.LoggerMatchFilter"> <loggerToMatch value="FooLogger" /> <acceptOnMatch value="false" /> </filter>
<appender name="ClientDebugFile" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString"> <conversionPattern value="log\clients\DEBUG_%property{Ip}.log" /> </file> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="2MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %-5level %logger - %message%newline" /> </layout> </appender>
if (!log4net.LogManager.GetRepository().Configured)
{
log4net.Config.XmlConfigurator.Configure();
}