我有一个程序正在写入一个名为“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;
}
我检查了这个类似的问题,但该问题描述了不同的场景(带有不适用的修复)。
更新 - 万一谷歌人登陆这个页面,我后来发现了一个完全不同的原因。我的日志正在记录来自电子邮件收听服务的信息。服务本身存在半小时后超时的问题。所以,我的问题不在于 CreateText / AppendText ......我的问题是没有什么可记录的。很烦人,但我希望其他人不会被这个问题/答案误导。