public void Clear() { Date = ""; Category = ""; PID = 0; IP = ""; Kind = ""; KindEnum = LogEntryEnum.Other; Text = ""; StackFrames = new List <string> (); }
public void ParseFromString(string line) { Clear(); if (String.IsNullOrEmpty(line)) { return; } var part = line.Trim(); var done = false; var bracketElementPosition = 0; while (!done) { var brStartPos = part.IndexOf('['); if (brStartPos == 0) { // [ at first position var brEndPos = part.IndexOf(']'); if (brEndPos > 0) { // ] exists var element = part.Substring(1, brEndPos - 1); // position 0 .. always date // position 1 .. always category // pid:PID. // client IP if (bracketElementPosition == 0) { // date like "Sat Jun 07 21:47:25.214357 2014" Date = element; } else if (bracketElementPosition == 1) { Category = element; } else { if (element.StartsWith("pid ")) { var elementPID = element.Substring(4); PID = Convert.ToInt32(elementPID); } else if (element.StartsWith("client ")) { IP = element; } else { // unknown element // ] does not exist Text = part.Trim(); done = true; } } bracketElementPosition++; part = part.Substring(brEndPos + 1).Trim(); } else { // ] does not exist Text = part.Trim(); done = true; } } else { // element without [ on beginning var colonPos = part.IndexOf(":"); if (colonPos > 0) { Kind = part.Substring(0, colonPos); KindEnum = LogEntry.ParseLogEntry(Kind); //Text = part.Substring(colonPos+1).Trim(); Text = part.Trim(); done = true; } else { // no Kind found! Text = part.Trim(); done = true; } } } }