gpt4 book ai didi

c# - 关闭单个 log4net 实例

转载 作者:行者123 更新时间:2023-11-30 21:41:42 26 4
gpt4 key购买 nike

我的 log4net 配置中有多个附加程序,一个用于记录到文件,另一个使用存储过程。我能够看到文件的日志记录,但只有在我单击“停止站点”后才会显示 SQL 数据,请参见下图:

enter image description here

所以我得出结论,我可能必须通过执行以下操作来“关闭”实例:log4net.LogManager.GetLogger("SearchParamsLogger").Logger.Repository.Shutdown();

但在这样做时,它似乎也关闭了另一个记录器。 如何只关闭一个记录器?

我有以下 logger block :

<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>

最佳答案

您可以配置 DBAppender 将发送的消息数量 buffer在将它们刷新到数据库之前。

你的 <bufferSize value="100" />是我找到的默认示例 here ,降低它,你应该更频繁地看到消息,你甚至可以立即记录到值 1(或更低)的数据库

关于c# - 关闭单个 log4net 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43070972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com