我编写了一个带有开始和停止按钮的自动化程序,它一遍又一遍地执行各种任务,直到用户单击停止。在程序中,我有几个 Console.WriteLines 显示每个小子任务的结果。我决定将这些转换为 .txt 日志,这样我可以在关闭程序后查看,或者以防它崩溃。
我制作了以下 Logger 类:
class Logger
{
private string _logName;
public Logger(string logName)
{
_logName = logName;
using (StreamWriter w = File.AppendText(_logName + ".txt"))
{
w.WriteLine("-------------------------------");
}
}
public void Log(string logMessage)
{
using (StreamWriter w = File.AppendText(_logName + ".txt"))
{
w.WriteLine(DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + " " + logMessage);
}
Console.WriteLine(logMessage);
}
}
问题:在另一个类中,我有一个名为 _logger 的 Logger 实例。每次我想在日志中写一行时,我都会一遍又一遍地调用 _logger.Log。有时,这种情况会很快发生。每次在日志中写一行(在 using 语句中)都创建一个 StreamWriter 的新实例感觉不对。因此,我想到了将 StreamWriter 的实例化放在构造函数中,但这破坏了 using 语句的清理功能,不是吗?
知道如何最好地做到这一点吗?
提前致谢。