Log4Net ADO.net信息缓冲区

问题描述:

有没有一种方法可以配置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> 

感谢, 凯尔

找到了解决办法在这里:
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