我有一个由主机和可插入模块(插件)组成的应用程序。
我希望能够为主机和其他每个模块配置 log4net。 他们每个人都应该有自己的配置文件,并且每个人都将记录到不同的文件。
只有主机才有App.config文件。这些插件有自己的配置文件,其中包含 log4net 配置部分。
从插件之一调用 XmlConfigurator.Configure 会覆盖主机的 app.config log4net 定义。
是否有一种简单的方法来附加配置而不是覆盖它们?
谢谢, 盖。
最佳答案
看来您已经找到了适合您的解决方案。然而,我找到了一个不同的解决方案,我认为它“更理想”,所以我将其发布在这里,供将来可能发现这个问题的人使用。
log4net 有一个称为存储库的概念,可以单独配置。它不是很流行,也没有很好的文档,但这里是我找到的一些文档:
http://logging.apache.org/log4net/release/manual/repositories.html
无论如何,您所需要做的就是在插件程序集上添加 RepositoryAttribute
,并使用该插件独有的存储库名称,log4net 会将其与其他所有内容分开。
关于log4net - 使用多个配置文件进行配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775386/