private static void WriteDataRaw(HttpRequest request, string filePath, string[][] lines)
{
if (lines.Length == 0)
return;
var fileAlreadyExists = File.Exists(filePath);
using (var stream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read))
{
using (var writer = new StreamWriter(stream)) // by default, encoding is UTF8 without BOM
{
if (fileAlreadyExists)
{
writer.BaseStream.Seek(0, SeekOrigin.End);
}
else
{
writer.BaseStream.Write(Const.Utf8Bom, 0, Const.Utf8Bom.Length);
var clientTime = lines[0][0];
writer.WriteLine("{0}\t{1}\t{2}", clientTime, "ClientIP", request.UserHostAddress);
writer.WriteLine("{0}\t{1}\t{2}", clientTime, "ClientHostName", request.UserHostName);
writer.WriteLine("{0}\t{1}\t{2}", clientTime, "ClientUserAgent", request.UserAgent);
}
var buf = new StringBuilder();
foreach (var item in lines)
{
var line = string.Join("\t", item);
buf.AppendLine(line);
}
writer.Write(buf);
}
}
}