如何删除页面重新加载写的重复行?

时间:2015-03-24 07:42:53

标签: c# .net streamwriter pageload

我写了一个日志文件,它总是有一个重复的行(因为我猜的页面重新加载)。

userName searched for: 'assembly' at: 3/24/2015 7:32:42 AM
userName searched for: 'assembly' at: 3/24/2015 7:32:43 AM

这是我的文件编写代码:

using (StreamWriter streamWriter = File.AppendText(Server.MapPath("~/searchlog.txt")))
{
    streamWriter.WriteLine(userRecord.name + " searched for: \'" + ProcessInputClause + "\' at: " + DateTime.UtcNow);
}

什么是摆脱这个的好方法?我正在考虑使用:

var lines = System.IO.File.ReadAllLines("...");
System.IO.File.WriteAllLines("...", lines.Take(lines.Length - 1).ToArray());

但这似乎不起作用......

3 个答案:

答案 0 :(得分:4)

您不应该从日志中删除任何记录。您需要准确地知道应用程序中发生了什么才能重现应用程序错误。从日志中删除行可以隐藏非常重要的内容。

如果需要从日志中删除一些重复,可能会有一些设计气味。

答案 1 :(得分:0)

你可以试试这个:

var previoustext = new HashSet<string>();
File.WriteAllLines(destinationFile, File.ReadLines(sourceFile)
                                        .Where(line => previoustext.Add(line)));

答案 2 :(得分:0)

您应该更改您编写日志的位置,因为页面的某些模块可能会在加载一个页面时多次调用您的脚本。

我不会记录搜索条目我要做的是将数据插入数据库中的搜索记录以及您需要的其他信息,这样就可以更轻松地在您的网站上进行搜索报告或统计。