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); }
public static bool Reset(this ParserContext ctx) { if (ctx.Prefix == null && !ctx.ReadSyslogPrefix()) { return(false); } ctx.Position = ctx.Prefix.Length; return(true); }