2017-03-28 87 views
2

我在log4net配置中有多個appender,一個用於登錄到一個文件,另一個用存儲過程。我能看到記錄到文件中,但是SQL數據將顯示後,才點擊「停止網站」,見下圖:關閉一個log4net實例

enter image description here

所以我得出的結論是,我可能必須通過執行以下操作來「關閉」實例:log4net.LogManager.GetLogger("SearchParamsLogger").Logger.Repository.Shutdown();

但是這樣做似乎也關閉了另一個記錄器。 如何關閉只有一個記錄器?

我有以下logger塊:

<logger name="SearchParamsLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="LogSearchParams" /> 
</logger> 
<logger name="FileLogger"> 
    <level value="DEBUG" /> 
    <appender-ref ref="LogFile" /> 
</logger> 

我在我的.config以下附加目的地:

<appender name="LogSearchParams" 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=MyServer\SQLEXPRESSPC;initial catalog=MyDatabase;integrated security=false;persist security info=True;User ID=DBUser;Password=MyPassword" /> 
    <commandText value="InsertIManNrlLog" /> 
    <commandType value="StoredProcedure" /> 
    <parameter> 
    <parameterName value="@UserName"/> 
    <dbType value="String" /> 
    <size value="255" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%property{uname}" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@ObjectId" /> 
    <dbType value="String" /> 
    <size value="4000" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@DeleteSpan" /> 
    <dbType value="Int32" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%property{deleteSpan}" /> 
    </layout> 
    </parameter> 
    <parameter> 
    <parameterName value="@LogLevel" /> 
    <dbType value="String" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level" /> 
    </layout> 
    </parameter> 
</appender> 
<appender name="LogFile" type="log4net.Appender.FileAppender"> 
    <file value="application.log"/> 
    <appendToFile value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <header value="Logging Start &#xD;&#xA;"/> 
    <footer value="Logging End &#xD;&#xA;"/> 
    <conversionPattern value="%date | [%thread] %-5level %logger: %message%newline"/> 
    </layout> 
</appender> 

回答

3

可以沖洗前配置的郵件數的DBAppender將buffer到DB。

<bufferSize value="100" />是默認的例子,我發現here,降低它,你應該更經常看到消息,您甚至可以直接記錄到數據庫與值1(或更低)

+0

這是它!謝謝!我嚴重誤解了bufferSize的使用。 –