2015-06-03 129 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

我想要一個同時使用刷新間隔或緩衝區大小的配置將其緩衝到首先出現的數據庫 –