【问题标题】:How to configure log4net for WCF如何为 WCF 配置 log4net
【发布时间】:2011-01-27 15:24:03
【问题描述】:

在我的 asp webforms 应用程序中,我会进行 log4net 初始化;

log4net.Config.XmlConfigurator.Configure();

在 Application_Start 上的 global.asax 上,以便在应用程序启动时完成一次。

为 IIS 托管的 WCF 应用程序配置 log4net 的正确方法是什么(特别询问该行在哪里放置要使用的事件等),以便 log4net 被初始化一次并且没有不必要的初始化。

【问题讨论】:

    标签: c# asp.net .net wcf 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();
      

      每个服务类的构造函数都对我有用。

      【讨论】:

      • 为提高您的帖子质量,请说明此代码将如何/为何解决问题。
      猜你喜欢
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多