「appname_yyyyMMdd.log」というログ ファイルに書き込むプログラムがあります。ここで、appname はアプリの名前で、yyyyMMdd は現在の日付です。サンプルのログ ファイル名は "loglistener_20110615.log" です。とにかく、私のアプリはログ ファイルを正常に作成し、計画どおりに更新します。ただし、日付が変わると、アプリは何もログに記録せず、新しいファイルも作成しません。つまり、今日は 6 月 15 日なので、今夜の深夜以降に「loglistener_20110616.log」というファイルを作成する必要があり、その新しいファイルに引き続きログを記録する必要があります。
コードの抜粋は次のとおりです。
public static void LogInfo(string format, params object[] args)
{
lock (_logLock)
{
using (StreamWriter sw = File.AppendText(GetLogPath()))
{
sw.WriteLine(GetTimeStamp() + String.Format(format, args));
}
}
}
private static string GetLogPath()
{
string appName = "loglistener";
string today = DateTime.Today.ToString("yyyyMMdd");
string fileName = appName + "_" + today + ".log";
string fullLogPath = AppDomain.CurrentDomain.BaseDirectory + fileName;
return fullLogPath;
}
この同様の質問を確認しましたが、その質問は別のシナリオを説明しています (適用できない修正を含む)。
更新 - グーグル社員がこのページにたどり着いた場合に備えて、後でこれとはまったく別の原因を発見しました。私のログには、電子メール リスニング サービスからの情報が記録されています。サービス自体には、30 分後にタイムアウトするという問題がありました。したがって、私の問題は CreateText / AppendText ではありませんでした... 私の問題は、ログに記録するものがないことでした。非常に迷惑ですが、他の人がこの質問/回答に惑わされないことを願っています。