private void loadLatestToolStripMenuItem_Click(object sender, EventArgs e) { var sites = IOHandler.GetSiteFolders(); List <ValidLog> files = new List <ValidLog>(); foreach (var site in sites) { files.AddRange(IOHandler.GetLogs(site)); } List <string> lines = new List <string>(); foreach (var log in files) { lines.AddRange(IOHandler.LogContents(log)); } var logs = W3CParser.ParseContents(lines.ToArray()); foreach (var log in logs) { if (CFTool.NeedsParsed(log.X_Forwarded_For)) { log.X_Forwarded_For = CFTool.GetClientIP(log.X_Forwarded_For); } if (log.X_Forwarded_For != null & log.X_Forwarded_For != "-") { if (!InList(log.X_Forwarded_For)) { AddClient(log.X_Forwarded_For); } } else if (!InList(log.ClientIP)) { AddClient(log.ClientIP); } } }
private static BaseParser GetParserForFormat(LogFormat format) { BaseParser parser; switch (format) { case LogFormat.W3C: parser = new W3CParser(); break; case LogFormat.IIS: parser = new IISParser(); break; case LogFormat.NCSA: parser = new NCSAParser(); break; default: throw new Exception($"Unknown log format: {format}"); } return(parser); }