asp.net アプリケーションのユーザー操作をどのようにログに記録できますか。さらに、ログデータを保存するためのアプローチは何ですか? よろしくお願いします。
3 に答える
log4net や NLog などのロギング フレームワークを使用することをお勧めします。これらのフレームワークを使用すると、多くの宛先にログを記録できます。さらに重要なことに、アプリケーションの終了後に決定を下すことができます。つまり、ログ メッセージが書き込まれる場所を構成できます。
個人的には、Web アプリケーションの場合はデータベースにログインします。
ログの詳細をデータベースに保存するか、イベントを追跡できるように単純なテキストファイルを作成するかの2つの方法があります。
ここでは、イベントを追跡し、ログの詳細を維持し、ログの詳細をテキストファイルに保存する方法を簡単に説明します。それはあなたがあなたの問題を解決するのを助けるかもしれません。
まず、名前空間をインポートする必要があります。
using System.IO;
ログの詳細を追跡するための小さな関数を作成しました-
public void LogEntry(string msg, string path)
{
try
{
//It will open the file, append the your message and close the file
File.AppendAllText(path,msg);
}
catch (Exception ex)
{
ex.GetBaseException();
}
}
この関数では、2つのパラメーターを渡す必要があります
- メッセージ
- テキストファイルのパス
例えば
string logmsg;
logmsg = "** " + DateTime.Now.ToString() + "||" + "User:" + UserName + "||" + " EventDesc: Login Attempt Failed";
l1.LogEntry(logmsg, Server.MapPath("LoginEvent.txt"));
ここで、LoginEvnet.txtは、ログの詳細を保存しているテキストファイルの名前です。
logmsg-これは、追跡するか、ログファイルに保存する必要があるメッセージです。
または、Common Logging インフラストラクチャを使用して実装を非表示にし、ロガーを自由に切り替えることができます
http://netcommon.sourceforge.net
ログを保存する場所は、ログ データをどのように使用するか (つまり、ログ データを読み取って解釈し、必要に応じてアクションを実行する) によって大きく左右されます。ログ データを分析する人がマシンにアクセスでき、ビジネス上重要でない場合は、単にファイルにログを記録します。マシンがビジネスにとって重要な場合は、おそらく何らかの監視ソフトウェアがあり、ログをイベント ログまたは WMI に発行すると興味深いでしょう。
ファイルにログを記録する場合は、ログ データが必要な期間と、一度に必要なデータの量を考慮してください。ローリング ログ ファイルを使用すると、ログ ファイルが非常に大きくなったり、ハード ディスク容量の半分を消費したりしないようにすることができます。また、フィルターまたは優先順位を使用して、問題がない場合にエラーのみをログに記録し、問題を調査するときにフィルターを開いてデバッグまたは詳細化することもできます。
IIRC log4net および/またはエンタープライズ ライブラリは、WCF サービス トレース ビューアーで読み取り可能な形式でログを記録できます。http://msdn.microsoft.com/en-us/library/ms732023.aspx を参照してください(ただし、それです)。ただし、Log4net にはダッシュボードがあります。