2015-06-03 104 views
2

我尝试每100个记录进入database.If我指定的缓冲区大小100.It剧照进入每个记录到database.Is有什么办法,我可以指定刷新间隔和缓冲大小。所以首先它需要。 这是我的配置。log4net的缓冲区大小不工作

<log4net> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <bufferSize value="10" /> 
     <connectionType value="System.Data.SqlClient.SqlConnection, 
    System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     <connectionString value="data source=;User ID=;Password=" /> 
     <commandText value="INSERT INTO Errorlog ([clientname],[username],[administration],[selectedentity],[project],[Date],[Thread],[Level],[Logger], 
    [Message],[Exception],[browser],[ipaddress],[url],[errormessage]) VALUES (@clientname,@username,@administration,@selectedentity,@project,@log_date, @thread, @log_level, 
    @logger, @message, @exception,@browser,@ipaddress,@url,@errormessage)"/> 
     <parameter> 
     <parameterName value="@clientname" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{clientname}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@username" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{username}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@administration" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{administration}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@selectedentity" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{selectedentity}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@project" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{project}" /> 
     </layout> 
     </parameter> 
     <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> 
     <parameter> 
     <parameterName value="@browser" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{browser}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@ipaddress" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{ipaddress}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@url" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{url}" /> 
     </layout> 
     </parameter> 
     <parameter> 
     <parameterName value="@errormessage" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%property{errormessage}" /> 
     </layout> 
     </parameter> 
    </appender> 


    <root> 
     <appender-ref ref="AdoNetAppender"/> 
    </root> 
    </log4net> 
+0

如果要指定刷新间隔,请参阅[这个答案](HTTP://计算器。 COM /问题/ 30490536 /嵌入式log4net的缓冲与 - adonetappender/30491358#30491358)用于冲洗ADO净附加器 – stuartd

回答

2

Buffersize只规定在提交之前应该在RAM中保留多少项。它没有定义记录器的Lossy

要定义一种有损记录器,你需要国家明确和界定什么可以失去:

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

我会扩大我的问题.. –

+0

的缓冲区大小是工作在控制台应用程序很好,但不是Web application.Is有任何理由。 –

+0

我想要一个同时使用刷新间隔或缓冲区大小的配置将其缓冲到首先出现的数据库 –