[Xinge Education] Log4Netに基づくログ情報の双方向ストレージ(ソースコード付き)

1はじめに

ホストコンピュータの開発にはログレコードが不可欠であり、ログレコードを介してログ分析やエラートラッキングを行うことができます。初心者はtxtテキスト書き込みを使用してログを保存しますが、テキスト書き込みはスレッドセーフではありません。複数のスレッドが同時にログに書き込むと、いくつかの問題が発生します。Log4netライブラリは、.Netの下にある優れたオープンソースのロギングコンポーネントです。これは、開発者がさまざまなターゲット(コンソール、ファイル、データベースなど)にログ情報を出力するのに役立つツールです。このセクションでは、主にオープンソースコンポーネントLog4Netを使用してエラーエラー情報のテキストストレージを実現し、SQLiteデータベースと組み合わせてログINFO情報をデータベースに保存して後続のクエリを容易にします。+ vx:xiketang777はソースコードを受け取ります

2.開発準備

  • まず、thinger.cn.Log4NetSQLiteProという名前の新しいWindowsフォームアプリケーションを作成します。UIインターフェイスの設計は次のとおりです。

  • 以下に示すように、Nugetを介してLog4Netオープンソースコンポーネントを追加します。

  • 次のように、Nugetを介してSQLiteコンポーネントを追加します。

3.テキストストレージ

通常の状況では、エラーや異常な情報をテキストに保存できるため、いつでもクエリ用のファイルを開くことができます。テキストの保存は、自動的に1日を単位とし、1日に1つのファイルに対応します。手順は次のとおりです。

  • 以下に示すように、アプリケーション構成ファイルプロジェクトを追加し、右クリックして新しいアイテムを追加し、プロジェクトタイプのアプリケーション構成ファイルを選択します。名前はlog4net.configです。

  • 以下に示すように、関連ノードを追加するための構成ファイル書き込みログ構成ファイル:

構成ファイルは、ログ情報の関連属性、保存方法、ログ内容形式などを指定します。構成情報は次のとおりです。

その中で、より重要なのは、上記のファイルのConversionPatternに対応するログ情報の形式であり、値は「[%d]%n%m%n%n」であり、各プレースホルダーには、以下に示すように対応する意味があります。 vx:xiketang777はソースコードを受け取ります

文字フォーマット

説明%m(message)出力ログmessage%n(newline)wrap%d(datetime)現在のステートメントが実行されている時間を出力します%r(runtime)プログラムの実行によって消費されたミリ秒数を現在の%t(threadid)に出力します。スレッドID%p(priority)ログの現在のログレベル%c(class)現在のログオブジェクトの名前%L出力ステートメントが配置されている行番号%F出力ステートメントが配置されているファイル名%-10最小長は10で、十分なスペースがありません

  • 次の図に示すように、構成ファイルのプロパティの出力ディレクトリにコピーします。新しい場合は常にコピーまたはコピーするように設定します。

  • 以下に示すように、プロジェクトのAssemblyInfo.csクラスにコード行を追加します。

  • 以下に示すように、LogHelperクラスを追加し、2つのErrorメソッドを記述します。

  • iniテキストストレージボタンが発生した場合は、以下に示すように、エラーログ書き込みを呼び出します。

  • 実行が完了すると、プロジェクトディレクトリのLog \ Errorディレクトリの下に、その日のログで指定されたファイルが生成され、次のように開かれます。

4.SQLiteストレージ

ログ情報をデータベースに保存する利点は、ユーザーがインターフェイスを介してクエリを実行するのに便利なことです。ここでは、オープンソースの無料データベースSQLiteを使用します。SQLServerやmysqlなどの他のリレーショナルデータベースも同じ原理です。具体的な手順は次のとおりです。

  • データベースとデータテーブルの作成Log4NetSQLiteという名前のSQLiteStudioソフトウェアを使用してデータベースを作成し、次のスクリプトを実行してログデータテーブルを作成します。

  • データベースファイルをプロジェクトルートディレクトリの下のデータベースフォルダにコピーします
  • 次に示すように、log4net.configファイルを変更して、データベースストレージ関連の構成を追加します。

bufferSize:ログキャッシュの書き込み番号が0に設定されている場合、1つある限り、すぐにデータベースに書き込まれます。

connectionString:SQLiteはデータベースファイルの絶対パスを指します

  • 以下に示すように、InfoメソッドをLogHelperクラスに追加します。

  • 以下に示すように、SQLiteストレージボタンイベントで、Info logwriteを呼び出します。

  • 実行が完了したら、データベースを開いて、関連するレコードがあるかどうかを確認します。

5.実用的なアプリケーション

上記の一連の説明を通じて、Log4Netのアプリケーションについては、誰もがある程度理解していると思います。Log4Netによって構築されたログシステムは、多くのプロジェクトに必要な機能であり、プロジェクトの開発、デバッグ、およびその後のメンテナンスにおいて重要な役割を果たします。実際の使用では、Log4Neを単純なデータストレージツールとして使用することも、Log4Netをマルチテーブルおよびマルチデータベースストレージに使用することもできます。これらのコンテンツは後で紹介します。

6.最後に書かれている[ソースコードを読む必要があります]

最近、初心者が最大の問題を学習するために、C#を学ぶホストマシンに小さなパートナーの成長の数は何の交換が+ VXことができないことであることが判明:交換基を学ぶ産業用PCにxiketang777プルあなたを、パートナーが小規模の参加を歓迎し、のみトップ200に限定され、この記事のソースコードはJiaqunからも入手できます。

 

おすすめ

転載: blog.csdn.net/xiketangAndy/article/details/108533802