Webアプリケーションのエラーを処理するために、global.asaxのApplication_Error()イベントで作成されるログファイルと、日付に基づいて作成されたログファイル(1日あたり1つ)を作成しています。
エラーが発生し、同時に複数のユーザーからファイルが書き込みを取得するシナリオを検討しています
そのため、ファイルがすでに別のユーザーによって使用されているという例外がスローされる可能性があります。
誰もがそのようなシナリオに対処するのを助けることができます
どうもありがとう
Webアプリケーションのエラーを処理するために、global.asaxのApplication_Error()イベントで作成されるログファイルと、日付に基づいて作成されたログファイル(1日あたり1つ)を作成しています。
エラーが発生し、同時に複数のユーザーからファイルが書き込みを取得するシナリオを検討しています
そのため、ファイルがすでに別のユーザーによって使用されているという例外がスローされる可能性があります。
誰もがそのようなシナリオに対処するのを助けることができます
どうもありがとう
mutex書き込み手順をロックするために使用します。エラーをスローする可能性のあるすべてのプール/スレッドをキャッチできるからでmutexはありません。lock()
MSDN には、詳細mutexと例があります。
http://msdn.microsoft.com/en-us/library/system.threading.mutex.aspx
簡単な例
public void LogThis(string LogDetails)
{
var mut = new Mutex(true, "LogMutexName");
try
{
// Wait until it is safe to enter.
mut.WaitOne();
// here you open write close your file
}
finally
{
// Release the Mutex.
mut.ReleaseMutex();
}
}
ELMAHのようなものを使用するだけで、かなりまともなエラー ログが得られます。どのように、何をログに記録するかという点で、非常に柔軟です。また、最小限の労力で NuGet を使用して追加することもできます。
またはNLogを見てください