Example #1
0
 public RowPrototype(LogEntry p_row)
 {
     MyIdString = (p_row.Info + p_row.ErrorInfo);
     m_strOrigString = (p_row.Info + p_row.ErrorInfo);
     MyDataRow = p_row;
     m_colTrigrams = GetStringTrigrams(m_strIdString);
 }
Example #2
0
 public void ConstructorTest()
 {
     var number = "55";
     var entryText = "Error is database!";
     var entry = new LogEntry(number, entryText);
     Assert.AreEqual(number, entry.LineNumber);
     Assert.AreEqual(entryText, entry.EntryText);
 }
Example #3
0
 public void ToArrayTest()
 {
     string number = "734";
     string entryText = "restarting NSD, please wait...";
     string[] logEntryArray = new string[] { "734", "restarting NSD, please wait..." };
     var entry = new LogEntry(number, entryText);
     Assert.AreEqual(logEntryArray, entry.ToArray());
     Assert.AreEqual(2, entry.ToArray().Length);
 }
Example #4
0
 public void ConstructorTest(
     [Values("34534", "11222", "234534667", null, "")]
     string number,
     [Values("hi", "whats up", "errors559", null, "")]
     string entryText
     )
 {
     var entry = new LogEntry(number, entryText);
     Assert.AreEqual(number, entry.LineNumber);
     Assert.AreEqual(entryText, entry.EntryText);
 }
Example #5
0
        public static void Save(string filePath, LogEntry[] logEntries)
        {
            using(var stream = File.Open(filePath, FileMode.Create))
            {
                WriteUTF8EncodingHeader(stream);

                using(var sw = new StreamWriter(stream))
                {
                    foreach(LogEntry logEntry in logEntries)
                    {
                        sw.WriteLine(ToString(logEntry));
                    }
                }
            }
        }
Example #6
0
        public static LogEntry ParseLogEntry(string serializedLogEntry)
        {
            string[] parts = serializedLogEntry.Split((char)65533);

            if (parts.Length != 8)
            {
                parts = serializedLogEntry.Split((char)160);
            }

            if (parts.Length != 8)
            {
                return null;
            }

            var result = new LogEntry();

            try
            {
                string date = parts[0] + parts[1];

                result.TimeStamp = DateTime.ParseExact(date, "yyyyMMddhh:mm:ss.ffff",
                                                       CultureInfo.InvariantCulture.DateTimeFormat);
                result.ApplicationDomainId = int.Parse(parts[2]);
                result.ThreadId = int.Parse(parts[3]);
                result.Severity = parts[4];
                result.Title = parts[5];
                result.DisplayOptions = parts[6];
                result.Message = parts[7];
            }
            catch (Exception)
            {
                return null;
            }

            return result;
        }
 private void ReadNDC(XmlReader xmlreader, Names names, LogEntry logentry)
 {
     if (xmlreader.Read()){
         switch (xmlreader.NodeType){
             case XmlNodeType.Whitespace:
                 break;
             case XmlNodeType.Element:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc)){
                 }
                 else{
                     throw new NotImplementedException("!");
                 }
                 break;
             case XmlNodeType.EndElement:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc)){
                     return;
                 }
                 throw new NotImplementedException("! " + xmlreader.Name);
             default:
                 throw new NotImplementedException("! " + xmlreader.NodeType);
         }
     }
 }
        private void ReadProperties(XmlReader xmlreader, Names names, LogEntry logentry)
        {
            while (xmlreader.Read()) {
                switch (xmlreader.NodeType) {
                case XmlNodeType.Whitespace:
                    break;
                case XmlNodeType.Element:
                    if (Object.ReferenceEquals (xmlreader.LocalName, names.data)) {
                        ReadDataAttributes (xmlreader, names, logentry);
                    } else {
                        throw new NotImplementedException ("!");
                    }
                    break;
                case XmlNodeType.EndElement:
                    if (Object.ReferenceEquals (xmlreader.LocalName, names.data)) {

                    } else if (Object.ReferenceEquals (xmlreader.LocalName, names.properties)) {
                        return;
                    } else {
                        throw new NotImplementedException ("! " + xmlreader.Name);
                    }
                    break;
                default:
                    throw new NotImplementedException ("! " + xmlreader.NodeType);
                }
            }
        }
        private void ReadDataAttributes(XmlReader xmlreader, Names names, LogEntry logentry)
        {
            var name = string.Empty;
            var val = string.Empty;
            if (xmlreader.HasAttributes) {
                while (xmlreader.MoveToNextAttribute()) {
                    if (Object.ReferenceEquals (xmlreader.LocalName, names.name)) {
                        name = xmlreader.Value;
                    } else if (Object.ReferenceEquals (xmlreader.LocalName, names.value)) {
                        val = xmlreader.Value;
                    } else {
                        throw new NotImplementedException (xmlreader.LocalName);
                    }
                }

                // move back to the element node that contains
                // the attributes we just traversed
                xmlreader.MoveToElement ();
                if (logentry.Data.Properties == null)
                {
                    logentry.Data.Properties = new PropertiesDictionary();
                }
                logentry.Data.Properties[name] = val;
                switch (name) {
                case ("log4net:UserName"):
                        logentry.Data.UserName = val;
                        break;
                case ("log4japp"):
                        logentry.Data.Domain = val;
                        break;
                }
            }
        }
 private void ReadLocationInfo(XmlReader xmlreader, Names names, LogEntry logentry)
 {
     var className = string.Empty;
     var methodName = string.Empty;
     var fileName = string.Empty;
     var lineNumber = string.Empty;
     if (xmlreader.HasAttributes) {
         while (xmlreader.MoveToNextAttribute()) {
             if (Object.ReferenceEquals (xmlreader.LocalName, names.@class)) {
                 className = xmlreader.Value;
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.method)) {
                 methodName = xmlreader.Value;
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.file)) {
                 fileName = xmlreader.Value;
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.line)) {
                 lineNumber = xmlreader.Value;
             } else {
                 throw new NotImplementedException (xmlreader.LocalName);
             }
         }
         logentry.Data.LocationInfo = new LocationInfo(className, methodName, fileName, lineNumber);
         xmlreader.MoveToElement ();
     }
 }
Example #11
0
        private void AddToGrid(LogEntry entry)
        {
            Color? displayOptions = ParseDisplayOptions(entry);

            string[] messageLines = entry.Message.Split(new[] { '\n' });
            string firstLine = messageLines.Length > 0 ? messageLines[0] : string.Empty;

            AddToGrid(new LogEntryGridRow
                 {
                     Date = entry.TimeStamp.ToString(DateFormatString),
                     Time = entry.TimeStamp.ToString(TimeFormatString),
                     AppDomainId = entry.ApplicationDomainId.ToString(),
                     ThreadId = entry.ThreadId.ToString(),
                     Severity = entry.Severity,
                     Title = entry.Title,
                     Message = firstLine
                 }, displayOptions);

            for (int i = 1; i < messageLines.Length; i++)
            {
                AddToGrid(new LogEntryGridRow
                                 {
                                     Message = messageLines[i]
                                 }, displayOptions);
            }
        }
 private void EventChildren(XmlReader xmlreader, Names names, LogEntry logentry)
 {
     while (xmlreader.Read()) {
         switch (xmlreader.NodeType) {
         case XmlNodeType.Whitespace:
             break;
         case XmlNodeType.Element:
             if (Object.ReferenceEquals (xmlreader.LocalName, names.message))
             {
                 logentry.Data.Message = xmlreader.ReadInnerXml ();
             }
             else if (Object.ReferenceEquals (xmlreader.LocalName, names.throwable)
                     || Object.ReferenceEquals (xmlreader.LocalName, names.exception))
             {
                 logentry.Data.ExceptionString = xmlreader.ReadInnerXml ();
             }
             else if (Object.ReferenceEquals (xmlreader.LocalName, names.properties)) {
                 ReadProperties (xmlreader, names, logentry);
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.locationinfo)) {
                 ReadLocationInfo (xmlreader, names, logentry);
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.data)) {
                 ReadDataAttributes (xmlreader, names, logentry);
             } else if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc)) {
                 ReadNDC(xmlreader, names, logentry);
             } else {
                 throw new NotImplementedException ("1! " + xmlreader.Name);
             }
             break;
         case XmlNodeType.EndElement:
             if (Object.ReferenceEquals (xmlreader.LocalName, names.@event)) {
                 return;
             } else if (Object.ReferenceEquals (xmlreader.LocalName, names.message)
                     || Object.ReferenceEquals (xmlreader.LocalName, names.throwable)
                     || Object.ReferenceEquals (xmlreader.LocalName, names.exception)
                     || Object.ReferenceEquals (xmlreader.LocalName, names.properties)
                 ) {
                 //Ignore it
             } else {
                 throw new NotImplementedException ("3! " + xmlreader.Name);
             }
             break;
         default:
             throw new NotImplementedException ("2! " + xmlreader.NodeType);
         //break;
         }
     }
 }
Example #13
0
        //gui
        bool IsLineInFilter(string strLogFile, LogEntry row)
        {
            string a = row.Info;
            string b = row.ErrorInfo;
            string c = row.UserName;
            string d = row.LogLevel;
            string line = a + " " + b + " " + c + " " + d;

            return IsLineInFilter(strLogFile, line);
        }
 private void AddToEntries(LogEntry entry)
 {
     Entries.Add(entry);
 }
Example #15
0
        private Color? ParseDisplayOptions(LogEntry entry)
        {
            string displayOptions = entry.DisplayOptions;

            if (displayOptions != null
                && displayOptions.Length > 8
                && displayOptions.StartsWith("RGB(")
                && displayOptions.EndsWith(")"))
            {
                string[] colors = displayOptions.Substring(4, displayOptions.Length - 5).Split(new[] { ',' });

                byte R, G, B;
                if (colors.Length == 3
                    && byte.TryParse(colors[0], out R)
                    && byte.TryParse(colors[1], out G)
                    && byte.TryParse(colors[2], out B))
                {
                    return Color.FromArgb(R, G, B);
                }
            }

            if (entry.Severity == InformationPriority)
            {
                return Color.LightGreen;
            }

            if (entry.Severity == WarningPriority)
            {
                return Color.Yellow;
            }

            if (entry.Severity == CriticalPriority || entry.Severity == ErrorPriority)
            {
                return Color.Red;
            }
            return null;
        }
        public IEnumerable<LogEntry> Parse(Stream s)
        {
            var nt = new NameTable ();
            var nsmgr = new XmlNamespaceManager (nt);
            nsmgr.AddNamespace ("log4j", "http://jakarta.apache.org/log4j/");
            nsmgr.AddNamespace ("log4net", "http://logging.apache.org/log4net/");
            // Create the XmlParserContext.
            var context = new XmlParserContext (null, nsmgr, null, XmlSpace.None);

            // Create the reader.
            var settings = new XmlReaderSettings
            {
                ConformanceLevel = ConformanceLevel.Fragment,
                CheckCharacters = false,
                XmlResolver = null,
                DtdProcessing = DtdProcessing.Ignore
            };
            var list = new List<LogEntry> ();
            var encoding = Encoding.UTF8;
            var xmlreader = XmlReader.Create (new StreamReader (s, encoding), settings, context);

            Names names = new Names{
             @event = xmlreader.NameTable.Add ("event"),
             message = xmlreader.NameTable.Add ("message"),
             properties = xmlreader.NameTable.Add ("properties"),
             data = xmlreader.NameTable.Add ("data"),
             ndc = xmlreader.NameTable.Add("NDC"),
             name = xmlreader.NameTable.Add ("name"),
             @value = xmlreader.NameTable.Add ("value"),
             throwable = xmlreader.NameTable.Add ("throwable"),
             exception = xmlreader.NameTable.Add ("exception"),
             timestamp = xmlreader.NameTable.Add ("timestamp"),
             thread = xmlreader.NameTable.Add ("thread"),
             domain = xmlreader.NameTable.Add ("domain"),
             level = xmlreader.NameTable.Add ("level"),
             logger = xmlreader.NameTable.Add ("logger"),
             locationinfo = xmlreader.NameTable.Add ("locationInfo"),
             @class = xmlreader.NameTable.Add ("class"),
             method = xmlreader.NameTable.Add ("method"),
             file = xmlreader.NameTable.Add ("file"),
             line = xmlreader.NameTable.Add ("line"),
             username = xmlreader.NameTable.Add ("username")};

            while (xmlreader.Read()) {
                switch (xmlreader.NodeType) {
                case XmlNodeType.Whitespace:
                    break;
                case XmlNodeType.Element:
                    if (Object.ReferenceEquals (xmlreader.LocalName, names.@event)) {
                        LogEntry logentry = null;
                        logentry = new LogEntry ();
                        if (xmlreader.HasAttributes) {
                            while (xmlreader.MoveToNextAttribute()) {
                                if (Object.ReferenceEquals (xmlreader.LocalName, names.timestamp)) {
                                    var timestamp = xmlreader.Value;
                                    if (!string.IsNullOrEmpty (timestamp)) {
                                        double dSeconds;
                                        logentry.Data.TimeStamp = Double.TryParse (timestamp, out dSeconds)
                                                                      ? _dt.AddMilliseconds (dSeconds).ToLocalTime ()
                                                                      : DateTime.Parse (timestamp).ToLocalTime ();
                                    }
                                } else if (Object.ReferenceEquals (xmlreader.LocalName, names.thread))
                                {
                                    logentry.Data.ThreadName = xmlreader.Value;
                                }
                                else if (Object.ReferenceEquals (xmlreader.LocalName, names.domain))
                                {
                                    logentry.Data.Domain = xmlreader.Value;
                                }
                                else if (Object.ReferenceEquals (xmlreader.LocalName, names.level)) {
                                    logentry.Data.Level = LogEntry.GetLevel(xmlreader.Value);
                                    logentry.Image = LogEntryParser.ParseImageType (logentry.Data.Level.Name);
                                } else if (Object.ReferenceEquals (xmlreader.LocalName, names.logger))
                                {
                                    logentry.Data.LoggerName = xmlreader.Value;
                                }
                                else if (Object.ReferenceEquals (xmlreader.LocalName, names.username))
                                {
                                    logentry.Data.UserName = xmlreader.Value;
                                }
                                else {
                                    throw new NotImplementedException (xmlreader.LocalName);
                                }
                            }
                            xmlreader.MoveToElement ();
                        }

                        EventChildren (xmlreader, names, logentry);
                        list.Add (logentry);
                    } else {
                        Console.WriteLine (xmlreader.NodeType + ", " + xmlreader.Name + ": " + xmlreader.Value);
                        throw new NotImplementedException ();
                    }
                    break;
                default:
                    Console.WriteLine (xmlreader.NodeType + ", " + xmlreader.Name + ": " + xmlreader.Value);
                    throw new NotImplementedException (xmlreader.NodeType.ToString ());
                }
            }
            return list;
        }
Example #17
0
        private void button1_Click(object sender, EventArgs e)
        {
            var entry1 = new LogEntry
                             {
                                 Severity = "Information",
                                 TimeStamp = DateTime.Now,
                                 DisplayOptions = "RGB(250,50,50)",
                                 Message = "uiosdfkljsdfl; sdl;fksd;f,",
                                 Title = "Hello world!!!"
                             };

            var entry2 = new LogEntry
                             {
                                 Severity = "Critical",
                                 Message = "[iosdfkljsdfl; ",
                                 DisplayOptions = "RGB(50,250,150)",
                                 TimeStamp = DateTime.Now.AddDays(-1).AddSeconds(2.5),
                                 Title = "ERsdfkljsdlfj asiofje!!!"
                             };

            var entry3 = new LogEntry
                             {
                                 Severity = "Verbose",
                                 Message = "sdfklsdfsdfjsdfl; ",
                                 DisplayOptions = "RGB(50,150,150)",
                                 TimeStamp = DateTime.Now.AddDays(-1).AddSeconds(2.7),
                                 Title = "ERsdfkljssdfsdfdlfj asiofje!!!"
                             };

            var entry4 = new LogEntry
            {
                Severity = "Warning",
                Message = "bvnvsdfkljsdfl; ",
                DisplayOptions = "RGB(170,20,10)",
                TimeStamp = DateTime.Now.AddDays(-1).AddSeconds(2.9),
                Title = "ERsdfssdfkljsdlfj asiot565fje!!!"
            };

            PopulateGrid(new[] { entry1, entry2, entry3, entry4, entry2, entry1, entry3 });
        }
Example #18
0
        private void LoadFile()
        {
            textboxFileName.Text = FileName;
            _Entries.Clear();
            listView1.ItemsSource = null;

            DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            string sXml = string.Empty;
            string sBuffer = string.Empty;
            int iIndex = 1;

            Clear();

            try
            {
                FileStream oFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);
                StreamReader oStreamReader = new StreamReader(oFileStream);
                sBuffer = string.Format("<root>{0}</root>", oStreamReader.ReadToEnd());
                oStreamReader.Close();
                oFileStream.Close();

                #region Read File Buffer
                ////////////////////////////////////////////////////////////////////////////////
                StringReader oStringReader = new StringReader(sBuffer);
                XmlTextReader oXmlTextReader = new XmlTextReader(oStringReader);
                oXmlTextReader.Namespaces = false;
                while (oXmlTextReader.Read())
                {
                    if ((oXmlTextReader.NodeType == XmlNodeType.Element) && (oXmlTextReader.Name == "log4j:event"))
                    {
                        LogEntry logentry = new LogEntry();

                        logentry.Item = iIndex;

                        double dSeconds = Convert.ToDouble(oXmlTextReader.GetAttribute("timestamp"));
                        logentry.TimeStamp = dt.AddMilliseconds(dSeconds).ToLocalTime();
                        logentry.Thread = oXmlTextReader.GetAttribute("thread");

                        #region get level
                        ////////////////////////////////////////////////////////////////////////////////
                        logentry.Level = oXmlTextReader.GetAttribute("level");
                        switch (logentry.Level)
                        {
                            case "ERROR":
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.ERROR);
                                    break;
                                }
                            case "INFO":
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.INFO);
                                    break;
                                }
                            case "DEBUG":
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.DEBUG);
                                    break;
                                }
                            case "WARN":
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.WARN);
                                    break;
                                }
                            case "FATAL":
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.FATAL);
                                    break;
                                }
                            default:
                                {
                                    logentry.Image = LogEntry.Images(LogEntry.IMAGE_TYPE.CUSTOM);
                                    break;
                                }
                        }
                        ////////////////////////////////////////////////////////////////////////////////
                        #endregion

                        #region read xml
                        ////////////////////////////////////////////////////////////////////////////////
                        while (oXmlTextReader.Read())
                        {
                            if (oXmlTextReader.Name == "log4j:event")   // end element
                                break;
                            else
                            {
                                switch (oXmlTextReader.Name)
                                {
                                    case ("log4j:message"):
                                        {
                                            logentry.Message = oXmlTextReader.ReadString();
                                            break;
                                        }
                                    case ("log4j:data"):
                                        {
                                            switch (oXmlTextReader.GetAttribute("name"))
                                            {
                                                case ("log4jmachinename"):
                                                    {
                                                        logentry.MachineName = oXmlTextReader.GetAttribute("value");
                                                        break;
                                                    }
                                                case ("log4net:HostName"):
                                                    {
                                                        logentry.HostName = oXmlTextReader.GetAttribute("value");
                                                        break;
                                                    }
                                                case ("log4net:UserName"):
                                                    {
                                                        logentry.UserName = oXmlTextReader.GetAttribute("value");
                                                        break;
                                                    }
                                                case ("log4japp"):
                                                    {
                                                        logentry.App = oXmlTextReader.GetAttribute("value");
                                                        break;
                                                    }
                                            }
                                            break;
                                        }
                                    case ("log4j:throwable"):
                                        {
                                            logentry.Throwable = oXmlTextReader.ReadString();
                                            break;
                                        }
                                    case ("log4j:locationInfo"):
                                        {
                                            logentry.Class = oXmlTextReader.GetAttribute("class");
                                            logentry.Method = oXmlTextReader.GetAttribute("method");
                                            logentry.File = oXmlTextReader.GetAttribute("file");
                                            logentry.Line = oXmlTextReader.GetAttribute("line");
                                            break;
                                        }
                                }
                            }
                        }
                        ////////////////////////////////////////////////////////////////////////////////
                        #endregion

                        _Entries.Add(logentry);
                        iIndex++;

                        #region Show Counts
                        ////////////////////////////////////////////////////////////////////////////////
                        int ErrorCount =
                        (
                            from entry in Entries
                            where entry.Level == "ERROR"
                            select entry
                        ).Count();

                        if (ErrorCount > 0)
                        {
                            labelErrorCount.Content = string.Format("{0:#,#}  ", ErrorCount);
                            labelErrorCount.Visibility = Visibility.Visible;
                            imageError.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            labelErrorCount.Visibility = Visibility.Hidden;
                            imageError.Visibility = Visibility.Hidden;
                        }

                        int InfoCount =
                        (
                            from entry in Entries
                            where entry.Level == "INFO"
                            select entry
                        ).Count();

                        if (InfoCount > 0)
                        {
                            labelInfoCount.Content = string.Format("{0:#,#}  ", InfoCount);
                            labelInfoCount.Visibility = Visibility.Visible;
                            imageInfo.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            labelInfoCount.Visibility = Visibility.Hidden;
                            imageInfo.Visibility = Visibility.Hidden;
                        }

                        int WarnCount =
                        (
                            from entry in Entries
                            where entry.Level == "WARN"
                            select entry
                        ).Count();

                        if (WarnCount > 0)
                        {
                            labelWarnCount.Content = string.Format("{0:#,#}  ", WarnCount);
                            labelWarnCount.Visibility = Visibility.Visible;
                            imageWarn.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            labelWarnCount.Visibility = Visibility.Hidden;
                            imageWarn.Visibility = Visibility.Hidden;
                        }

                        int DebugCount =
                        (
                            from entry in Entries
                            where entry.Level == "DEBUG"
                            select entry
                        ).Count();

                        if (DebugCount > 0)
                        {
                            labelDebugCount.Content = string.Format("{0:#,#}  ", DebugCount);
                            labelDebugCount.Visibility = Visibility.Visible;
                            imageDebug.Visibility = Visibility.Visible;
                        }
                        else
                        {
                            labelDebugCount.Visibility = Visibility.Hidden;
                            labelDebugCount.Visibility = Visibility.Hidden;
                        }
                        ////////////////////////////////////////////////////////////////////////////////
                        #endregion
                    }
                }
                ////////////////////////////////////////////////////////////////////////////////
                #endregion
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            this.listView1.ItemsSource = _Entries;
        }
Example #19
0
        private void ReadProperties(XmlReader xmlreader, Names names, LogEntry logentry)
        {
            while (xmlreader.Read())
            {
                switch (xmlreader.NodeType)
                {
                    case XmlNodeType.Whitespace:
                        break;
                    case XmlNodeType.Element:
                        if (Object.ReferenceEquals(xmlreader.LocalName, names.data))
                        {
                            ReadDataAttributes(xmlreader, names, logentry);
                        }
                        else
                        {
                            throw new Exception("READPROPERTIES1: Expected data but was: " + xmlreader.LocalName);
                        }
                        break;
                    case XmlNodeType.EndElement:
                        if (Object.ReferenceEquals(xmlreader.LocalName, names.data))
                        {

                        }
                        else if (Object.ReferenceEquals(xmlreader.LocalName, names.properties))
                        {
                            return;
                        }
                        else
                        {
                            throw new Exception("READPROPERTIES2: Expected localname to be data or properties: " + xmlreader.Name);
                        }
                        break;
                    default:
                        throw new Exception("READPROPERTIES3: Expected type to be element, whitespace or endelement but was: " + xmlreader.NodeType);
                }
            }
        }
Example #20
0
 private void ReadNDC(XmlReader xmlreader, Names names, LogEntry logentry)
 {
     if (xmlreader.Read())
     {
         switch (xmlreader.NodeType)
         {
             case XmlNodeType.Whitespace:
                 break;
             case XmlNodeType.Element:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc))
                 {
                 }
                 else
                 {
                     throw new Exception("READNDC1: Expected localname to be ndc but was: " + xmlreader.LocalName);
                 }
                 break;
             case XmlNodeType.EndElement:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc))
                 {
                     return;
                 }
                 throw new Exception("READNDC2: Expected localname to be ndc but was: " + xmlreader.LocalName);
             default:
                 throw new Exception("READNDC2: Expected type to be whitespace, element or endelement but was: " + xmlreader.NodeType);
         }
     }
 }
Example #21
0
 private void EventChildren(XmlReader xmlreader, Names names, LogEntry logentry)
 {
     while (xmlreader.Read())
     {
         switch (xmlreader.NodeType)
         {
             case XmlNodeType.Whitespace:
                 break;
             case XmlNodeType.Element:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.message))
                 {
                     logentry.Data.Message = xmlreader.ReadInnerXml();
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.throwable)
                          || Object.ReferenceEquals(xmlreader.LocalName, names.exception))
                 {
                     logentry.Data.ExceptionString = xmlreader.ReadInnerXml();
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.properties))
                 {
                     ReadProperties(xmlreader, names, logentry);
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.locationinfo))
                 {
                     ReadLocationInfo(xmlreader, names, logentry);
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.data))
                 {
                     ReadDataAttributes(xmlreader, names, logentry);
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.ndc))
                 {
                     ReadNDC(xmlreader, names, logentry);
                 }
                 else
                 {
                     throw new Exception("EVENTCHILDREN1: Expected a known name but was: " + xmlreader.Name);
                 }
                 break;
             case XmlNodeType.EndElement:
                 if (Object.ReferenceEquals(xmlreader.LocalName, names.@event))
                 {
                     return;
                 }
                 else if (Object.ReferenceEquals(xmlreader.LocalName, names.message)
                          || Object.ReferenceEquals(xmlreader.LocalName, names.throwable)
                          || Object.ReferenceEquals(xmlreader.LocalName, names.exception)
                          || Object.ReferenceEquals(xmlreader.LocalName, names.properties)
                     )
                 {
                     //Ignore it
                 }
                 else
                 {
                     throw new Exception(
                         "EVENTCHILDREN2: expected end element to be either event, message, throwable, exception or properties, but was: " +
                         xmlreader.Name);
                 }
                 break;
             case XmlNodeType.Text:
                 // Ignore it
                 break;
             default:
                 throw new Exception(
                     "EVENTCHILDREN4: Expected either whitespace, element or end element but was: " +
                     xmlreader.NodeType);
                 //break;
         }
     }
 }
Example #22
0
        //move to engine
        /// <summary>
        /// parses log file from the given position and on
        /// </summary>
        /// <param name="p_strLogFileName"></param>
        /// <param name="p_intStartPos"></param>
        /// <returns></returns>
        public long ParseLogFileRegExp(string p_strLogFileName, long p_intStartPos, LogBehavior behaviorForCurrentFile)
        {
            //m_dtlogEntries.BeginLoadData();
            long lngFileTotalBytes = 0;
            long progressbytes = 0;

            try
            {
                using (FileStream objFStream = new FileStream(p_strLogFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    objFStream.Position = p_intStartPos;
                    using (StreamReader objReader = new StreamReader(objFStream, CurrentEncoding))
                    {

                        string strAllText = objReader.ReadToEnd();
                        lngFileTotalBytes = strAllText.Length;
                        //m_drPrevRow = drRow;
                        MatchCollection colMatches = behaviorForCurrentFile.ParserRegex.Matches(strAllText);

                        foreach (Match match in colMatches)
                        {
                            int increment = (int)((double)lngFileTotalBytes / (double)colMatches.Count);
                            progressbytes += increment;
                            ProgressBarManager.IncrementProgress(increment);

                            if (!IsLineInFilter(p_strLogFileName, match.Value))
                            {
                                continue;
                            }

                            LogEntry drRow = new LogEntry();
                            string strDate = match.Groups["date"].Value;
                            string strThread = match.Groups["thread"].Value;
                            string strLevel = match.Groups["level"].Value;
                            string strComputer = match.Groups["computer"].Value;
                            string strUser = match.Groups["user"].Value;
                            string strInfo = match.Groups["info"].Value;
                            string strInfoEx = match.Groups["exinfo"].Value.TrimEnd();
                            string strMachine = match.Groups["machine"].Value;

                            LogEntry row = new LogEntry();
                            drRow.ErrorInfo = strInfoEx;
                            //"14/11 16:39:03,236"
                            DateTime dtmTemp = DateTime.Now;
                            bool ok = System.DateTime.TryParseExact(strDate, behaviorForCurrentFile.DateFormat, Application.CurrentCulture, System.Globalization.DateTimeStyles.None, out dtmTemp);

                            if (!ok)
                                ok = System.DateTime.TryParseExact(strDate + "0", behaviorForCurrentFile.DateFormat, Application.CurrentCulture, System.Globalization.DateTimeStyles.None, out dtmTemp);

                            if (!ok)
                                ok = System.DateTime.TryParseExact(strDate + "00", behaviorForCurrentFile.DateFormat, Application.CurrentCulture, System.Globalization.DateTimeStyles.None, out dtmTemp);

                            if (!ok)
                                drRow.EntryTime = DateTime.MinValue;
                            else
                                drRow.EntryTime = dtmTemp;
                            if (strLevel.ToLower().StartsWith("trac"))
                                strLevel = "TRACE";
                            else if (strLevel.ToLower().StartsWith("inf"))
                                strLevel = "INFO";
                            else if (strLevel.ToLower().StartsWith("deb"))
                                strLevel = "DEBUG";
                            else if (strLevel.ToLower().StartsWith("err"))
                                strLevel = "ERROR";
                            else if (strLevel.ToLower().StartsWith("fat"))
                                strLevel = "FATAL";
                            else if (strLevel.ToLower().StartsWith("warn"))
                                strLevel = "WARN";

                            //drRow.EntryTime = DateTime.Parse(strDate);
                            drRow.ComputerName = strComputer;
                            drRow.UserName = strUser;
                            drRow.ThreadName = strThread;
                            drRow.Info = strInfo;
                            drRow.LogLevel = strLevel;
                            drRow.SourceLogFile = Path.GetFileName(p_strLogFileName);
                            drRow.UserName = strUser;
                            drRow.ComputerName = strMachine;
                            if (p_strLogFileName.StartsWith("\\\\"))
                            {
                                drRow.ServerName = p_strLogFileName.Substring(2, p_strLogFileName.IndexOf('\\', 3) - 2);
                            }
                            else
                                drRow.ServerName = "localhost";

                            //if (IsLineInFilter(p_strLogFileName, drRow.Info + " " + drRow.RowError))
                            //m_dtlogEntries.AddLogEntriesRow(drRow);

                            //if (IsLineInFilter(p_strLogFileName, match.Value))
                            //{

                            _dtlogEntries.Add(drRow);
                            drRow.Key = _dtlogEntries.Count;
                            //}

                        }

                        ProgressBarManager.IncrementProgress(lngFileTotalBytes - progressbytes);
                    }
                }
            }
            catch
            {
                //only open a file in notepad if it's a new file causing the problem...
                if (p_intStartPos == 0)
                {
                    FRMVanishingAlert.ShowForm(2, "Wrong Log Format", "Not a known log,\r\n\rOpening Notepad", "", "", 0, 0, true, FormStartPosition.Manual, false);

                    string strWinDir = Environment.GetEnvironmentVariable("SystemRoot");
                    Process.Start(strWinDir + "\\notepad.exe", p_strLogFileName);
                    //this.Visible = false;
                }
                return long.MinValue;
            }

            return lngFileTotalBytes;
        }
Example #23
0
        private bool ShouldBeFiltered(LogEntry entry)
        {
            IEnumerable<string> searchTexts = tb_Search.Text.Split(',').Select(f => f.Trim()).Where(f => f != string.Empty);

            bool containingSearchText = false;
            foreach (string searchText in searchTexts)
            {
                if (entry.Title.IndexOf(searchText, StringComparison.InvariantCultureIgnoreCase) >= 0 ||
                    entry.Message.IndexOf(searchText, StringComparison.InvariantCultureIgnoreCase) >= 0)
                {
                    containingSearchText = true;
                }
            }

            if (searchTexts.Count() > 0 && !containingSearchText) return true;

            return (!chkShowVerbose.Checked && entry.Severity == VerbosePriority)
                   || (!chkShowInfo.Checked && entry.Severity == InformationPriority)
                   || (!chkShowWarnings.Checked && entry.Severity == WarningPriority)
                   || (!chkShowCritical.Checked && entry.Severity == CriticalPriority);
        }
Example #24
0
        private void PopulateGrid(LogEntry[] entries)
        {
            _currentLogEntriesSet = new List<LogEntry>(entries);

            RefreshGrid();
        }
 private static ImageSource GetImage(LogEntry.ImageType image)
 {
     return _ImageList[image];
 }
Example #26
0
        private void saveToolStripMenuItem_Click(object sender, EventArgs e)
        {
            LogEntry[] toSave = null;

            lock (_syncRoot)
            {
                if (_currentLogEntriesSet != null && _currentLogEntriesSet.Count > 0)
                {
                    toSave = new LogEntry[_currentLogEntriesSet.Count];
                    _currentLogEntriesSet.CopyTo(toSave);
                }
            }

            if (toSave == null)
            {
                MessageBox.Show("No log entries has been loaded");
                return;
            }

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                LogFile.Save(saveFileDialog1.FileName, toSave);
            }
        }
Example #27
0
        private static string ToString(LogEntry logEntry)
        {
            // Copied from Composite.Logging.WCF.LogEntry.ToString()
            var sb = new StringBuilder();
            sb.Append(logEntry.TimeStamp.ToString("yyyyMMdd"));
            sb.Append(NonBreakingSpace).Append(logEntry.TimeStamp.ToString("hh:mm:ss.ffff"));
            sb.Append(NonBreakingSpace).Append(logEntry.ApplicationDomainId);
            sb.Append(NonBreakingSpace).Append(logEntry.ThreadId < 10 ? " " : string.Empty).Append(logEntry.ThreadId);
            sb.Append(NonBreakingSpace).Append(logEntry.Severity);
            sb.Append(NonBreakingSpace).Append(logEntry.Title);
            sb.Append(NonBreakingSpace).Append(logEntry.DisplayOptions);
            sb.Append(NonBreakingSpace).Append(logEntry.Message/*.Replace("\n", @"\n")*/);

            return sb.ToString();
        }