0

FileAppender を使用して、アプリケーションのファイルにログを記録していました。ここで、MemoryAppender を使用してログからエラーを取得し、データベースに保存し始めました。これは、データベースにクエリを実行する UI に例外/エラーを表示するためです。

データベースに正しく挿入されたエラーが表示されますが、ログには表示されません。

MemoryAppender がメモリにのみ書き込むことをどこかで読みました。しかし、FileAppender と MemoryAppender の両方が構成されている場合、ログ ファイルにも書き込まれるのではないでしょうか?

エラーをファイルに記録できる回避策はありますか?

4

2 に答える 2

0

http://logging.apache.org/log4net/release/config-examples.html

このリンクを使用して、ログをデータベースに保存します。正常に動作するように試しました。その後、データベースからグリッドまたは任意の場所にログ情報を取得します。

于 2012-06-01T13:19:36.117 に答える
0

MemoryAppender を何に使用するのかわかりません。AdoNetAppender を使用して、ログ エントリをデータベースに直接保存できます。

私の理解が正しければ、あなたの質問はファイル内のログの欠落に関するものでした。Log4net は、明示的にそうしないように構成していない限り、すべてのログ エントリを構成済みのすべてのアペンダーに送信する必要があります。一部のメッセージがファイルに書き込まれないようにするフィルターが構成されているとは思いません。そのため、ファイルのロックに問題がある可能性があります (内部デバッグでこの問題が明らかになるはずです。log4net FAQを参照してください)。

その場合は、ファイルアペンダーにこれを使用してみてください:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

ただし、これはパフォーマンスに影響を与えるため、ロックの問題が発生する理由を突き止める必要があります。

于 2012-06-09T11:06:38.597 に答える