多個用戶一次寫入文件的記錄器。多個用戶的記錄器
我在我的應用程序中使用Logger。它一次對單個用戶來說工作正常。但是對於多個用戶來說,它顯示的例外情況如下,System.IO.IOException: The process cannot access the file '\19-Oct-2015_TraceLogFile.txt' because it is being used by another process.
下面的logger.cs頁面代碼。
public static class Logger
{
static string ErrorLogFile, TraceLogFile;
static Logger()
{
string fpath = ConfigurationManager.AppSettings["telogpath"];
ErrorLogFile = fpath + string.Format("{0:dd-MMM-yyyy}", DateTime.Now) + "_ErrorLogFile.txt";
TraceLogFile = fpath + string.Format("{0:dd-MMM-yyyy}", DateTime.Now) + "_TraceLogFile.txt";
}
private static string GetExceptionMessage(Exception ex)
{
string retValue = string.Format("Message: {0}\r\nStackTrace: {1}", ex.Message, ex.StackTrace);
if (ex.InnerException != null)
{
retValue = retValue + string.Format("\r\n\r\nInner Exception: {0}", GetExceptionMessage(ex.InnerException));
}
return retValue;
}
public static void WriteException(Exception ex, string AdditionalInfo)
{
string finalMessage = string.Format("{0:dd-MMM-yyyy hh:mm:ss.fff}: {1}\r\n\r\nAdditional Info: {2}\r\n{3}\r\n\r\n", DateTime.Now, GetExceptionMessage(ex), AdditionalInfo, new string('-', 60));
File.AppendAllText(ErrorLogFile, finalMessage);
}
public static void WriteLine(string Message)
{
string finalMessage = string.Format("{0:dd-MMM-yyyy hh:mm:ss.fff}: {1}\r\n", DateTime.Now, Message);
File.AppendAllText(TraceLogFile, finalMessage);
}
}
和訪問如下。
Logger.WriteLine("Hello");
Logger.WriteLine("Process started");
請幫忙解決這個問題。
如果您的用戶創建一個新進程,則每次只有一個用戶可以訪問該日誌文件。告訴我們代碼,也許它可以改變。但是也許更容易集中日誌或使用日誌文件和用戶名 – Marged