我在这里面临一个问题,我现在正在实习,我必须修改一个给定的程序。我遇到了一些滞后问题,我终于发现了一个问题:日志作者.
程序运行得越多,速度就越慢,实际上。我发现这是因为日志文件的流编写器,下面是代码:
using (StreamWriter swLog = new StreamWriter(GenerateDaylog(_logPath), true))
{
String sLog = "";
sLog += DateTime.Now.ToShortDateString();
sLog += " ";
sLog += DateTime.Now.ToLongTimeString();
sLog += "\t";
sLog += new StackFrame(1).GetMethod().DeclaringType.Name;
sLog += "\t";
sLog += new StackFrame(1).GetMethod().Name;
sLog += "\t";
sLog += msg;
Trace.Listeners.Add(new TextWriterTraceListener(swLog));
Trace.WriteLine(sLog);
}日志文件现在大约是100到500 ko,每天都会创建一个新的日志文件,并以它的名称显示日期。
我想这个流线器有问题,但我不知道它是什么。
发布于 2014-04-23 12:57:07
这可能就是问题所在:
Trace.Listeners.Add(new TextWriterTraceListener(swLog));每次添加日志条目时,都会添加一个额外的跟踪监听器.所以第一次,你会得到一个日志条目。第二次,您将得到两个(新的)日志条目,等等。您应该能够在日志中看到这一点(尽管当您添加一个侦听器,然后处理编写器时,不太清楚会发生什么)。
不清楚你为什么要使用Trace.WriteLine,因为你很清楚你想写什么--为什么不直接使用swLog.WriteLine(...)呢?
另外,我鼓励您使用string.Format,而不是重复的字符串连接.在理想情况下,可以使用专用日志框架(例如NLog或log4Net)。
https://stackoverflow.com/questions/23244963
复制相似问题