Пример #1
0
        public bool TryParse(ParserContext context)
        {
            if (!context.ReadSyslogPrefix())
            {
                return(false);
            }
            context.Entry = new SyslogEntry();
            context.AssignFacilitySeverity();

            foreach (var parser in _versionParsers)
            {
                context.Reset();
                try
                {
                    if (parser.TryParse(context))
                    {
                        ExtractDataFromMessage(context);
                        return(context.ErrorMessages.Count == 0);
                    }
                }
                catch (Exception ex)
                {
                    context.ErrorMessages.Add(ex.ToString());
                    ex.Data["SyslogMessage"] = context.Text;
                    throw;
                }
            }
            return(false);
        }