AppMetrics.LogEvent.WriteDataRaw C# (CSharp) Method

WriteDataRaw() private static method

private static WriteDataRaw ( HttpRequest request, string filePath, string lines ) : void
request System.Web.HttpRequest
filePath string
lines string
return void
        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);
                }
            }
        }