Log4Net未监视app.config文件修改

Log4Net未监视app.config文件修改,log4net,log4net-configuration,Log4net,Log4net Configuration,让我先解释一下我的目标是什么。我正在尝试允许对配置文件的修改生效,而无需重新启动程序/调试。现在我尝试用两种方法来解决这个问题,第一种方法是在Assemblyinfo.cs文件的底部添加以下代码 [assembly: log4net.Config.XmlConfigurator(Watch=true)] 现在,记录器可以按预期工作,但是,当我在调试期间修改.config文件时,不会使用我所做的修改 我最初的假设是app.config文件在程序运行时无论出于何种原因都不能被“监视”。因此,我决定

让我先解释一下我的目标是什么。我正在尝试允许对配置文件的修改生效,而无需重新启动程序/调试。现在我尝试用两种方法来解决这个问题,第一种方法是在Assemblyinfo.cs文件的底部添加以下代码

[assembly: log4net.Config.XmlConfigurator(Watch=true)]
现在,记录器可以按预期工作,但是,当我在调试期间修改.config文件时,不会使用我所做的修改

我最初的假设是app.config文件在程序运行时无论出于何种原因都不能被“监视”。因此,我决定尝试创建一个外部配置文件,并将Log4Net信息放在那里。为此,我将所有Log4Net信息移出app.config文件,并将其移动到我创建的文件“Log4Net.config”中。然后我将Assemblyinfo.cs中的代码修改为:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
但是,现在记录器说它在启动时找不到配置文件。这就是我要问的

1) 如果app.config确实可以被监视修改,那么我做错了什么?为什么在程序运行时没有注意到并执行我的修改

2) 如果需要外部配置文件,为什么Log4Net找不到我创建的新配置文件


这是我关于stackoverflow的第一个问题,我环顾四周,但找不到直接解决我问题的东西。谢谢你的帮助

如果要使用Visual Studio调试应用程序,则需要修改输出文件夹中的
YourApplication.vshost.exe.config
文件(即调试过程中处于活动状态的文件)。

AFAIK,两种方法都应该可用。当log4net的行为不像您期望的那样时,要做的第一件事是启用log4net的内部日志记录。请参见Stefan的“您是对的”。使用Visual Studio进行调试时,需要修改vshost.exe.config文件。这对我有用。