簡単なロギング プロセスを使用するプログラムがあります。アイデアは、ファイルが既に存在しない限り、日付に対応する新しいファイルが毎日作成され、その場合は単に追加されるということです。問題は、File.Create が実行されるたびにエラーをスローしていることです。File.Create が FileStream を開いており、.close(); で呼び出すだけでよいという問題の解決策を見つけました。しかし、その解決策はうまくいきませんでした。ファイルが別のプロセスで使用されていることを示す IO 例外がまだ発生しています。これは、File.Create が作成するまで存在しないため、不可能です。ファイル。
コードは次のとおりです。
public static void logResults(System.Reflection.MethodBase method, Results result, string message)
{
string date = DateTime.Now.ToString();
int index = date.IndexOf(" ");
string subString = date.Substring(0, index);
string nwDate = Regex.Replace(subString, "/", "");
logFileName = "WebsiteRegressionProduction_TestCycle." + nwDate;
string currentLogFile = logFileLocation + @"\" + logFileName;
StringBuilder sb = new StringBuilder();
if (!File.Exists(currentLogFile))
{
File.Create(currentLogFile).Close();
sb.Append("DATE-TIME\tACTION\tTEST CLASS\tTEST NAME\tTEST STATUS\tERROR MESSAGES");
sb.Append("\n");
}
else
{
string previousLogs = File.ReadAllText(currentLogFile);
sb.Append(previousLogs);
}
sb.Append(DateTime.Now.ToString());
sb.Append(" : ");
sb.Append("Text Executed: ");
sb.Append(method.ReflectedType.Name + " : ");
sb.Append(method + " : ");
sb.Append(result.ToString());
sb.Append(" : ");
sb.Append(message);
sb.Append("\n");
sb.Append("\n");
File.WriteAllText(currentLogFile, sb.ToString());