我是 log4net 的新手,一直在阅读和阅读,并没有得出我的问题是什么的结论。这是配置:
<root>
<level value="DEBUG" />
<appender-ref ref="AdoNetAppender"/>
</root>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Server=XXXXX;Database=XXX;Network=XXXXX;User ID=XXXXX;Password=XXXXX" />
<commandType value="StoredProcedure" />
<commandText value="dbo.LogWrite" />
<parameter>
<parameterName value="@LogDate" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@LogLevel" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout" value="%level" />
</parameter>
<parameter>
<parameterName value="@Logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout" value="%logger" />
</parameter>
<parameter>
<parameterName value="@UserID" />
<dbType value="Int32" />
<layout type="log4net.Layout.PatternLayout" value="%property{UserID}" />
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout" value="%message" />
</parameter>
<parameter>
<parameterName value="@Exception" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
当我转到 .NET 页面并在 Page_Load 中执行此语句时:
log.Error("hi")
我将此错误作为我的数据库表中的一个条目。但是,如果我很快再次访问此页面,我总共会获得 3 个条目?似乎如果我在重新加载页面之前等待大约 10 秒,我只会再获得一个条目。我已将缓冲区大小设置为 1。有人遇到同样的问题吗?社区的大多数人倾向于说,如果有问题,那么很可能是在您的配置中,但对我来说,我的配置看起来不错。
非常感谢任何能对此有所启发的人!
//丹尼尔