如何为 WCF 配置 log4net
Posted
技术标签:
【中文标题】如何为 WCF 配置 log4net【英文标题】:How to configure log4net for WCF 【发布时间】:2011-01-27 15:24:03 【问题描述】:在我的 asp webforms 应用程序中,我会进行 log4net 初始化;
log4net.Config.XmlConfigurator.Configure();
在 Application_Start 上的 global.asax 上,以便在应用程序启动时完成一次。
为 IIS 托管的 WCF 应用程序配置 log4net 的正确方法是什么(特别询问该行在哪里放置要使用的事件等),以便 log4net 被初始化一次并且没有不必要的初始化。
【问题讨论】:
【参考方案1】:我通常在我的服务类的构造函数中这样做,但我会检查 log4net 是否已经配置:
if (!LogManager.GetRepository().Configured)
// configure log4net...
我认为如果你真的想避免这种情况,你必须编写自己的服务工厂并在那里执行配置。
【讨论】:
【参考方案2】:同样的事情:Application_Start
。毕竟它是一个 ASP.NET 应用程序。对于自托管服务,您可以在启动主机之前配置log4net
。
【讨论】:
我添加了一个 global.asax 并通过 webconfig 和服务属性启用了 ASPNetCompatibility。我目前在 Application_BeginRequest 和 Session_Start 上受到打击,但 Application_Start 从未受到打击。知道为什么会发生这种情况吗?我在调试之前杀死了所有 w3wp 以确保应用程序第一次启动..【参考方案3】:添加:
XmlConfigurator.Configure();
每个服务类的构造函数都对我有用。
【讨论】:
为提高您的帖子质量,请说明此代码将如何/为何解决问题。以上是关于如何为 WCF 配置 log4net的主要内容,如果未能解决你的问题,请参考以下文章