2010-03-15 87 views
11

在我的asp webforms應用程序中,我將執行log4net初始化;如何爲WCF配置log4net

log4net.Config.XmlConfigurator.Configure(); 

on Application_Start上的global.asax,以便在應用程序啓動時完成一次。

爲IIS託管的WCF應用程序配置log4net的正確方法是什麼(特別要詢問在哪一行放置哪個事件以便使用等),以便log4net初始化一次,並且沒有不必要的初始化。

回答

3

同一件事:Application_Start。畢竟它是一個ASP.NET應用程序。對於自託管服務,您可以在啓動主機之前配置log4net

+1

我添加了global.asax並通過webconfig和服務屬性啓用了ASPNetCompatibility。我目前受到Application_BeginRequest和Session_Start的衝擊,但Application_Start永遠不會被擊中。任何想法爲什麼會發生?我在調試之前殺死了所有的w3wp,以確保應用程序第一次啓動。 – kaivalya 2010-03-15 11:39:13

15

我通常做這在我的服務類的構造函數,但我檢查,如果log4net的已經配置:

if (!LogManager.GetRepository().Configured) 
{ 
    // configure log4net... 
} 

我認爲,如果你真的想避免這種情況,你會寫自己的服務工廠並在那裏執行配置。

1

添加:

XmlConfigurator.Configure(); 

給每個服務類的構造函數爲我做的伎倆。

+3

要提高帖子的質量,請包括此代碼如何/爲何解決問題。 – 2012-10-04 09:57:23