Пример #1
0
        public LogEvent(string eventText, IEventContext rootContext, ICollection <IEventLevel> levels)
        {
            this._eventText = eventText;

            string contextName;

            if (eventText.StartsWith("<log4j:event"))
            {
                var regex =
                    new Regex(
                        "logger=\"(?<context>.*)\" level=\"(?<level>.*)\" timestamp=\"(?<timeDate>.*)\" .*log4j:message>(?<message>.*)</log4j:message>",
                        RegexOptions.Multiline);

                var matches = regex.Matches(eventText);

                contextName = matches[0].Groups["context"].Value.Trim();
                var milliseconds = long.Parse(matches[0].Groups["timeDate"].Value.Trim());
                Time    = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
                Time    = Time.ToUniversalTime();
                Level   = matches[0].Groups["level"].Value.Trim();
                Message = matches[0].Groups["message"].Value.Trim();
            }
            else
            {
                contextName = GetContextName();
            }

            IsControlMessage = (contextName.ToLower() == "nLogCruncher.Command".ToLower());

            Context = rootContext;
            foreach (var name in contextName.Split('.'))
            {
                Context = Context.GetContext(name);
            }

            if (levels.Count(thisLevel => thisLevel.Name.ToLower() == Level.ToLower()) == 0)
            {
                levels.Add(new EventLevel(Level));
            }
        }
Пример #2
0
        public LogEvent(string eventText, IEventContext rootContext, ICollection<IEventLevel> levels)
        {
            this._eventText = eventText;

            string contextName;
            if (eventText.StartsWith("<log4j:event"))
            {
                var regex =
                    new Regex(
                        "logger=\"(?<context>.*)\" level=\"(?<level>.*)\" timestamp=\"(?<timeDate>.*)\" .*log4j:message>(?<message>.*)</log4j:message>",
                        RegexOptions.Multiline);

                var matches = regex.Matches(eventText);

                contextName = matches[0].Groups["context"].Value.Trim();
                var milliseconds = long.Parse(matches[0].Groups["timeDate"].Value.Trim());
                Time = new DateTime(1970, 1, 1).AddMilliseconds(milliseconds);
                Time = Time.ToUniversalTime();
                Level = matches[0].Groups["level"].Value.Trim();
                Message = matches[0].Groups["message"].Value.Trim();
            }
            else
            {
                contextName = GetContextName();
            }

            IsControlMessage = (contextName.ToLower() == "nLogCruncher.Command".ToLower());

            Context = rootContext;
            foreach (var name in contextName.Split('.'))
            {
                Context = Context.GetContext(name);
            }

            if (levels.Count(thisLevel => thisLevel.Name.ToLower() == Level.ToLower()) == 0)
            {
                levels.Add(new EventLevel(Level));
            }
        }