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?
You can configure the log4net. config file to create log files. The file is located in the webroot\App_data directory of the installation.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With