Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Log4Net config in external file does not work

We are using log4net and want to specify it's configuration in an external config file (as we have done with other sections). To do this we have changed the log4net section in the App.config to:

... <section name="log4net"       type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> ... <log4net configSource="Log.config" /> ... 

And in the Log.Config file (same directory as the App.config) we have:

<log4net>   <appender name="General" type="log4net.Appender.FileAppender">     <file value="myapp.log" />     <layout type="log4net.Layout.SimpleLayout" />   </appender>   <root>     <appender-ref ref="General" />   </root> </log4net> 

However, when we run the app, no log file is created (and no logging done). There are no error messages output to the console.

If we move the contents of the Log.config file back into the App.config (replacing the first code line above), it works as expected. Any idea why it is not working in an external file?

like image 500
Robert Wagner Avatar asked Jan 15 '09 08:01

Robert Wagner


People also ask

Where is log4net configuration file?

You can configure the log4net. config file to create log files. The file is located in the webroot\App_data directory of the installation.

How do I enable log4net?

The easiest and quickest way to get started using log4net is by installing it through the NuGet Package Manager. Assuming that you have created a console application project in Visual Studio, you can install log4net via NuGet Manager, by following these steps.


1 Answers

Do you have the following attribute in your AssemblyInfo.cs file:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

and code like this at the start of each class that requires logging functionality:

private static readonly ILog log =  LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

I have a blog post containing this and other info here.

like image 125
Mitch Wheat Avatar answered Oct 08 '22 02:10

Mitch Wheat