Steps to FollowCreate a WPF application in Visual Studio.Making appropriate changes in "log4net.config" File
Go to NuGet package manager.
Select Manage NuGet Packages for Solution.
Select log4net by Apache Software.
Add a config file to project name it as “log4net.config”.
Select Application Configuration File from menu.
Rename file to “log4net.config”.
Select log4net.config from solution explorer, see for options in properties :
Build Action → Change to “ Content”.
Copy to output directory → Change to “copy always”.
Making appropriate changes in "log4net.config" File
<?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <root> <level value="ALL" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> <appender name="console" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %level %logger - %message%newline" /> </layout> </appender> <appender name="file" type="log4net.Appender.RollingFileAppender"> <file value="C:\CsharpCode\WPFapp.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="2MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> </layout> </appender> </log4net> </configuration>
Open AssemblyInfo.cs from solution explorer and add at the end. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Configure App.xaml.cs file Add 'using log4net;' reference. Add these codes inside “public partial class App : Application” : private static readonly ILog log = LogManager.GetLogger(typeof(App)); protected override void OnStartup(StartupEventArgs e) { log4net.Config.XmlConfigurator.Configure(); log.Info(" ============= Started Logging ============= "); base.OnStartup(e); }
Open MainWindow.cs Add reference : using log4net; Add these codes inside “public partial class MainWindow” private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); Inside public MainWindow() : log4net.Config.XmlConfigurator.Configure(); Options available for logs : /* * log.info * log.error * log.fatal * log.debug */