Na samym początku należy stworzyć plik o nazwie np. log4net.config. W nim przechowywane są konfiguracje logów generowanych z biblioteki.
Po jego stworzeniu w opcjach pliku Properties->Advanced należy zmienić parametr Copy to Output Directory z Do Not Copy na Copy Always. Bez ustawienia tego parametru nie zostanie ustawione żaden z parametrów logowania (Fatal, Warn, Info, Debug czy Error).
Przykładowa struktura wspomnianego pliku została przedstawiona poniżej:
- <?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
- </configSections>
- <log4net>
- <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
- <file value="logFile.txt" />
- <appendToFile value="true" />
- <rollingStyle value="Size" />
- <maxSizeRollBackups value="10" />
- <maximumFileSize value="250KB" />
- <staticLogFileName value="true" />
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date - %-5level - %logger [%property{NDC}] - %message%newline" />
- </layout>
- </appender>
- <root>
- <level value="ALL" />
- <appender-ref ref="RollingFileAppender" />
- </root>
- </log4net>
- </configuration>
Następnie w pliku AssemblyInfo.cs należy wprowadzić następującą linijkę:
- [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
W celu zapisania wywołanej wiadomości należy:
- private static readonly log4net.ILog log =
- log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- //....
- //....
- //....
- log.Info("Hello logging world!");
- log.Error("This is my error");
W celu weryfikacji czy wszystkie rodzaje wiadomości są uruchomione należy sprawdzić następujące wartości:
- bool fatalEnabled = log.IsFatalEnabled;
- bool warnEnabled = log.IsWarnEnabled;
- bool infoEnabled = log.IsInfoEnabled;
- bool debugEnabled = log.IsDebugEnabled;
- bool errorEnabled = log.IsErrorEnabled;
Gdy flagi będą ustawione na false to nie będzie zapisu danych w pliku w logach.
Można rozbudować sposoby wyświetlania danych. W celu wyświetlenia danych w konsoli wystarczy stworzyć następujący appender:
W ten sposób wszystkie dane z poziomu Info będą zapisywane do pliku opisanego w RejestracjeLogs oraz wyświetlone na konsoli.
Można rozbudować sposoby wyświetlania danych. W celu wyświetlenia danych w konsoli wystarczy stworzyć następujący appender:
- <appender name="ConsoleData" type="log4net.Appender.ConsoleAppender">
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date - %-5level - %message%newline" />
- </layout>
- </appender>
- //...
- //...
- //...
- <root>
- <level value="Info" />
- <appender-ref ref="ConsoleData" />
- <appender-ref ref="RejestracjeLogs" />
- </root>
W ten sposób wszystkie dane z poziomu Info będą zapisywane do pliku opisanego w RejestracjeLogs oraz wyświetlone na konsoli.