2012-11-16 31 views
0

在我安裝,我有ASP.NET MVC與城堡記錄和log4net的愁楚

public void Install(IWindsorContainer container, IConfigurationStore store) 
{ 
    container.AddFacility<LoggingFacility>(f => f.UseLog4Net("log4net.config")); 
} 

我log4net的配置文件(其被部署到我的ASP.NET MVC應用程序的bin目錄)是:

<log4net> 
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
    <bufferSize value="100" /> 
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    <connectionString value="data source=GCO06773\SQLEXPRESS;initial catalog=GEMS;integrated security=false;persist security info=True;User ID=<<userid removed>>;Password=<<password removed>>#" /> 
    <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
    <parameter> 
    <parameterName value="@log_date" /> 
    <dbType value="DateTime" /> 
    <layout type="log4net.Layout.RawTimeStampLayout" /> 
    </parameter> 
    <parameter> 
    <parameterName value="@thread" /> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%thread" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@log_level" /> 
    <dbType value="String" /> 
    <size value="50" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@logger" /> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%logger" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@message" /> 
    <dbType value="String" /> 
    <size value="4000" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@exception" /> 
    <dbType value="String" /> 
    <size value="2000" /> 
    <layout type="log4net.Layout.ExceptionLayout" /> 
    </parameter> 
</appender> 
<root> 
    <level value="INFO" /> 
    <appender-ref ref="AdoNetAppender" /> 
</root> 
</log4net> 

我有威盛Castle.Windsor實例化相關的代碼是控制器:

public ILogger Logger { get; set; } 
public ActionResult Index() 
{ 
    Logger.Info("Info"); 
    Logger.Debug("Debug"); 
    Logger.Error("Error"); 
    Logger.Fatal("Fatal"); 
    Logger.Warn("Warn"); 
    return View(); 
} 

記錄儀是VA蓋城堡記錄器,當我在觀察窗口深入研究時,似乎沒有與底層log4net記錄器相關的appender,除了根appender。

根據procmon,log4net.config文件實際上是在某個時間點被訪問的,所以我假設它正在被讀取。 IIS日誌中沒有錯誤,事件日誌中沒有錯誤,也沒有可以檢測到的異常或錯誤。我很難過。

更新1: 忘了提,我添加了這個:

<add key="log4net.Config" value="log4net.config"/> 

在web.config中,但它似乎沒有任何改變。

更新2:

我使用log4net的1.2.10.0與公鑰標記:1b44e1d426115821(此事項與城堡日誌這就是爲什麼我提到它)。

回答

0

log4net.config文件應該在您的網站的根目錄中,而不是在bin目錄中。

+0

我實際上已經嘗試過,但我想也許我沒有重新啓動網站,所以更改沒有得到。謝謝。這解決了它。 – Pete