托管在Windows服务上的WCF服务中的log4net
问题描述:
我有一个托管在Windows服务上的WCF服务。托管在Windows服务上的WCF服务中的log4net
我应该在哪里放XmlConfigurator.Configure();
?
在其他应用程序,我可以把它放在Application_Start()
我可以把这个在我的Windows服务的OnStart()方法?然后我能够从我的WCF服务实例化记录器吗?
这是我的我的实例记录:
private readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
这是我在我的窗口服务
protected override void OnStart(string[] args)
{
if (AgentServiceHost != null)
{
AgentServiceHost.Close();
}
AgentServiceHost = new ServiceHost(typeof(CustoemrService));
AgentServiceHost.Open();
}
答
只要把这段代码在你的AssemblyInfo.cs文件:
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
http://logging.apache.org/log4net/release/manual/configuration.html
对于我需要log4net的每个项目?即如果我需要登录到我的WCF服务项目以及我的Windows服务项目中,我必须将此行添加到两者中? – 2013-04-25 08:06:26
默认情况下,我的WCF服务或Windows服务项目中没有AssemblyInfo.cs – 2013-04-25 08:07:06
是的,AssemblyInfo.cs位于解决方案资源管理器中的属性节点下。 Visual Studio默认在每个项目中创建该文件。 这应该只包含在您的代码的入口点的项目中,在这种情况下,WCF服务和Win服务 – Oscar 2013-04-25 08:12:30