0

让我首先解释我的目标是什么。我正在尝试允许对我的配置文件的修改生效,而无需重新启动我的程序/调试。现在我尝试通过两种方式来解决这个问题,第一种方式是在我的 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的第一个问题,我环顾四周,但找不到直接解决我问题的东西。谢谢您的帮助!

4

1 回答 1

1

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

于 2012-06-09T10:57:24.997 回答