private static AccessLogEntry ReadCombinedFormat(AccessLogEntry output, StringShuttle shuttle) { output.RemoteHostname = shuttle.ReadToNext(' '); shuttle.Read(1); // ' ' output.RemoteLogname = shuttle.ReadToNext(' '); shuttle.Read(1); // ' ' output.RemoteUser = shuttle.ReadToNext(' '); shuttle.Read(2); // ' ', '[' output.Time = DateTimeOffset.ParseExact(shuttle.ReadToNext(']'), "dd/MMM/yyyy:HH:mm:ss zzz", CultureInfo.InvariantCulture); shuttle.Read(2); // ']', ' ' output.Request = shuttle.ReadEscapedString(); shuttle.Read(1); // ' ' output.Status = int.Parse(shuttle.ReadToNext(' ')); shuttle.Read(1); // ' ' output.BytesSent = int.Parse(shuttle.ReadToNext(' ')); shuttle.Read(1); // ' ' output.Referer = shuttle.ReadEscapedString(); shuttle.Read(1); // ' ' output.UserAgent = shuttle.ReadEscapedString(); return(output); }
public AccessLogEntry ParseCombinedFormat(string line) { var output = new AccessLogEntry(); var shuttle = new StringShuttle(line); return(ReadCombinedFormat(output, shuttle)); }
public AccessLogEntry ParseVirtualHostCombinedFormat(string line) { var output = new AccessLogEntry(); var shuttle = new StringShuttle(line); output.ServerName = shuttle.ReadToNext(':'); shuttle.Read(1); // ':' output.ServerPort = int.Parse(shuttle.ReadToNext(' ')); shuttle.Read(1); // ' ' return(ReadCombinedFormat(output, shuttle)); }