示例#1
0
        private void ProcessAllMessages()
        {
            try
            {
                foreach (var message in messageQueue.GetConsumingEnumerable(cancellationTokenSource.Token))
                {
                    var parser = parsers.FirstOrDefault(p => p.CanParseMessage(message.Message));

                    renderer.Render(parser != null ? parser.Parse(message) : SystemEvent.Create(message));
                }
            }
            catch (OperationCanceledException)
            { }
        }
示例#2
0
        public SystemEvent Parse(IMessage message)
        {
            Verify.NotNull(message, "message");

            var match   = pattern.Match(message.Message);
            var process = processes.GetProcessById(message.ProcessId);
            var level   = Settings.GetLevel(match.Groups["level"].Value);

            return(match.Success
                       ? new SystemEvent
            {
                Level = level,
                ProcessName = process.Name,
                ProcessId = process.Id,
                Timestamp = message.Timestamp,
                Thread = match.Groups["thread"].Value,
                Source = match.Groups["logger"].Value,
                Message = match.Groups["message"].Value,
                Username = match.Groups["username"].Value,
                RawMessage = new Lazy <String>(() => message.Message)
            }
                       : SystemEvent.Create(message));
        }