私は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 つのエントリしか取得できないようです。buffersize を 1 に設定しました。同じ問題を抱えている人はいますか? コミュニティの大部分は、問題がある場合は構成に問題がある可能性が高いと言う傾向がありますが、私には私の構成は問題ないように見えます。
これについていくつかの光を当てることができる人に大いに感謝します!
//ダニエル