我有一个 Windows 服务,其中 app.config 文件和 log4net.config 文件是分开的。日志记录不起作用。
在我的 app.config 文件中,我有以下部分:
<add key="log4net.Config" value="log4net.config"/>
如果我在值中指定 log4net.config 文件的绝对路径,则此方法有效。
我需要提供 log4net.cong 的绝对路径吗? log4net.config 和 app.config 文件与可执行文件位于同一文件夹中。
有任何想法吗?
Parag
也许这会有所帮助([使用 ASP.NET 2.0 网站将 Log4Net 配置移出 web.config][1]。)。
以下是您可能感兴趣的部分:
告诉应用程序进行配置
log4net 使用此配置文件。那里
这确实有两个地方。第一的,
global.asax 和第二个
assemblyInfo.cs 文件。请注意,大多数
你将开始的时间
包含所有代码的 global.asax 文件
排队。无论出于什么原因,唯一
我可以让它发挥作用的方法是
打破 global.asax 来使用
代码隐藏,然后ass
assemblyInfo.cs 文件。所以最终结果是
看起来像这样。
全局.asax:
global.asax.cs(在您的 App_Code 文件夹中):
using System;
using System.Web;
public class GlobalAsax : HttpApplication
{
// you may have lots of other code here
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
}
现在您已经有了申请
调用 log4net 的配置,你
可以在程序集中设置属性
信息以便 log4net 知道去哪里
查找配置文件。AssemblyInfo.cs
(在你的App_Code
文件夹):
[assembly:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
watch 标志告诉 log4net 保持
关注配置文件
潜在的变化。这很有帮助,如果
你想改变配置
从记录所有内容到仅记录错误
在测试过程中。
为了确保log4net.config
总是在那里,将 log4net.config 添加到 csproject 中,并将其设置为CopyAlways
。它应该出现在调试文件夹中。
您可以使用脚本将所有内容复制到发布文件夹,或者如果您使用的是 MS 安装项目,请手动将该文件添加到项目中。然后将添加参考。
[1]:https://web.archive.org/web/20160928002238/http://geekswithblogs.net:80/bsherwin/archive/2008/02/15/119657.aspx https://web.archive.org/web/20160928002238/http://geekswithblogs.net:80/bsherwin/archive/2008/02/15/119657.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)