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からも入手できます。