Maybe this is helpful (Moving your Log4Net configuration out of web.config with ASP.NET 2.0 web sites.).
Here are the parts that you might be interested:
Tell the application to configure
log4net using this config file. There
are really two spots for this. First,
the global.asax and second the
assemblyInfo.cs file. Note, that most
of the time you will start out with a
global.asax file with all of the code
inline. For whatever reason, the only
way I could get this to work was to
break the global.asax up to use a
code-behind and then ass the
assemblyInfo.cs file. So it ends up
looking like this.
global.asax:
<%@ Application Language="C#" Inherits="GlobalAsax" %>
global.asax.cs (in your App_Code folder):
using System;
using System.Web;
public class GlobalAsax : HttpApplication
{
// you may have lots of other code here
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
}
Now that you have your application
calling log4net's configuration, you
can set an attribute in your assembly
info so that log4net knows where to
look for the configuration file.
AssemblyInfo.cs
(in your App_Code
folder):
[assembly:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
The watch flag tells log4net to keep an
eye on the configuration file for
potential changes. This is helpful if
you want to change the configuration
from logging everthing to errors only
during the middle of your testing.
To make sure that the log4net.config
is always there, add the log4net.config to the csproject, and set it to CopyAlways
. It should be presented in the debug folder.
You can use a script to copy everything to a release folder, or if you are using MS setup project, manually add that file into the project. A reference will then be added.