我在我的软件中使用log4net日志记录,该软件包含多个应用程序。 我希望有一个共同的库。 我创建了一个库并将其放入conficuration文件中。在AssemblyInfo.cs中放置属性: log4net.Config.XmlConfigurator(ConfigFile = @“c:\ logging.xml”,Watch = true)
它适用于Windows服务,但不适用于asp.net应用程序。 如果从公共库中删除属性并将其放入global.asax,它在asp.net中工作。但是,这导致必须在Windows服务中进行log4net配置的那一部分。
还有一个业务流程会导致我们的库通过 remouting。我希望日志记录也在那里进行。
有解决方法吗?
答案 0 :(得分:1)
在我看来,库不应该定义配置文件的位置。也许更好的想法是有一个帮助方法,允许您快速配置log4net;该方法将为配置文件路径选择一个可选参数,并尝试首先从指定路径加载配置文件,如果这不起作用,则可以回退到当前文件夹,应用程序文件夹甚至web / app.config。
如果您坚持认为它必须是绝对路径,那么您需要为IIS应用程序池用户提供对此文件的读取权限。这样,按属性配置应该适用于服务和ASP.Net应用程序。我不明白你的意思是“重新安装”。