2009-07-12 64 views
2

有沒有一種方法可以配置AdoNetAppender在每次達到「錯誤」類型的值時進行記錄,並且在該語句之前只記錄最低的10個低閾值語句(即info) 。Log4Net ADO.net信息緩衝區

這可能嗎?我爲每個單獨的錯誤運行了數百個.info聲明,而且我不需要那麼多......僅僅足以查看事先發生的事情。

編輯 - 這裏是我當前的appender配置:

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
    <bufferSize value="10" /> 
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXXX" /> 
    <connectionString value="Data Source=XXXXXXX; Database=XXXXXXXXXXX; User Id=XXXXXXX; Password=XXXXXXXX; Connection Timeout=30; Min Pool Size=10; Max Pool Size=200;" /> 
    <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="ALL" /> 
    <appender-ref ref="AdoNetAppender" /> 
    <appender-ref ref="AspNetTraceAppender" /> 
</root> 

感謝, 凱爾

回答

5

找到了解決辦法在這裏:
http://www.beefycode.com/post/Log4Net-Tutorial-pt-8-Lossy-Logging.aspx

<lossy value="true"/> 
    <evaluator type="log4net.Core.LevelEvaluator"> 
    <threshold value="ERROR" /> 
    </evaluator> 
+0

感覺很好回​​答自己的問題tions是不是;) – 2009-07-13 08:15:56

+0

確實如此,有點像贏得小勝利:) – 2009-07-13 18:25:56