Log4Net adonet appender 有时不跟踪

问题描述 投票:0回答:0

我在 .net 应用程序(实际版本 4.7.2)中遇到 log4net 的奇怪问题。 我已经用一个扩展 AdoNetAppender 的类激活了多个记录器(我只覆盖了如何获取连接字符串),配置如下:

  <appender name="MyTraceAppender" type="mytype, myassembly">
    <bufferSize value="1" />
    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <connectionStringName value="RootContext"/>
    <commandText value="INSERT INTO table (columns) VALUES (values)" />
    <parameter>
      <parameterName value="@paramname" />
      <dbType value="Int32" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%property{paramname}" />
      </layout>
    </parameter>
    <parameter>
.....

  </appender>

然后,从代码中我以这种模式调用记录器

ThreadContext.Properties["paramname"] = paramvalue;
            ....        
Logger.Info("");

我注意到记录器跟踪所有请求,但另一个似乎“丢失”了数据库中的一些日志 第一个记录器只跟踪一些参数,而第二个记录器跟踪更大的数据(例如正文请求)

数据库连接用于 Azure SQL 数据库。似乎记录器没有错误,但可能与某些并发问题有关吗?如果是,我该如何处理?

如果我增加缓冲区大小,内存管理会不会有问题?

c# .net log4net
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.