Exemple #1
0
 public void Clear()
 {
     Date        = "";
     Category    = "";
     PID         = 0;
     IP          = "";
     Kind        = "";
     KindEnum    = LogEntryEnum.Other;
     Text        = "";
     StackFrames = new List <string> ();
 }
Exemple #2
0
        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;
                    }
                }
            }
        }