0
メソッドをAdoNetAppender
にオーバーライドする方法はありませんか? がこのlinkにあるSendBuffer
の方法log4netは、loggingeventの繰り返しでデータベースにログインし、それぞれを別々のクエリに挿入します。すべてのログをクエリに挿入する必要があります。Log4net adoNetAppender dosentログイベントをバルクに挿入する
メソッドをAdoNetAppender
にオーバーライドする方法はありませんか? がこのlinkにあるSendBuffer
の方法log4netは、loggingeventの繰り返しでデータベースにログインし、それぞれを別々のクエリに挿入します。すべてのログをクエリに挿入する必要があります。Log4net adoNetAppender dosentログイベントをバルクに挿入する
あなたはクラスのようなことができます:
public class MyAdoNetAppender : AdoNetAppender
{
override protected void SendBuffer(IDbTransaction dbTran, LoggingEvent[] events)
{
(... implementation goes here)
}
}
あなたが好きな設定でクラスを使用することができます(MYDLLがあなたのdllの名前で、あなたは正しい名前空間を持っていることを確認してください):
<appender name="A1" type="MyAdoNetAppender,MyDll">
あなたはデータベースへの一括書き込みの点では正しいかもしれませんが、このロギングではありませんか?ロギングはイベントを「書き留め」ます。できるだけ早くこの録音を行うべきです。では、オーバーライドされたメソッドで低水準点を確立する方法をどのように提案しますか?どのようにロギングイベントを一括して書き込むのが最適なのかをどのように判断しますか?あなたが書き込みを待っているイベントの完全な配列を持っている間にアプリがクラッシュしたらどうしますか?私はlog4netの人がおそらくこれについての研究をしていると思う。ポップオーバーして質問してください... –
パフォーマンスが実際に問題になっている場合は、[logging too much](https://blog.codinghorror.com/the-problem-with-logging/)ですか? – stuartd