带有单独配置的IIS WCF服务的log4net

Mar*_*tus 0 c# asp.net iis wcf log4net

我想将log4net用于IIS中托管的WCF服务.

但是要轻松更改设置,我想使用单独的配置文件.

所以我添加到Web.Config(以及WCF服务库的App.config)

<appSettings>
    <add key="log4net_config" value="log4net.config" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

但是这会导致IIS的当前目录

C:\Windows\System32\inetsrv
Run Code Online (Sandbox Code Playgroud)

并且永远不会有我的log4net.config文件.

但我想配置log4net之类的东西

var configFile = ConfigurationManager.AppSettings["log4net_config"];
var fileInfo = new FileInfo(configFile);
XmlConfigurator.ConfigureAndWatch(fileInfo);
Run Code Online (Sandbox Code Playgroud)

如何配置满足此需求的目录?

Pio*_*app 5

首先,您可以将完整路径放到log4.net配置文件中.

其次,您可以使用System.Web.Hosting.HostingEnvironment.MapPath例如解决路径"~/log4net.config"