diff --git a/TimberWinR/Inputs/LogsListener.cs b/TimberWinR/Inputs/LogsListener.cs index fa6160b..3cf060b 100644 --- a/TimberWinR/Inputs/LogsListener.cs +++ b/TimberWinR/Inputs/LogsListener.cs @@ -144,7 +144,7 @@ namespace TimberWinR.Inputs var qcount = string.Format("SELECT max(Index) as MaxRecordNumber FROM {0}", logName); var rcount = oLogQuery.Execute(qcount, iFmt); var qr = rcount.getRecord(); - var lrn = (Int64) qr.getValueEx("MaxRecordNumber"); + var lrn = (Int64) qr.getValueEx("MaxRecordNumber"); if (logHasRolled) { LogManager.GetCurrentClassLogger().Info("Log {0} has rolled", logName); @@ -217,7 +217,14 @@ namespace TimberWinR.Inputs GC.Collect(); } } - + catch(FileNotFoundException fnfex) + { + LogManager.GetCurrentClassLogger().Warn(fnfex.Message); + } + catch(OperationCanceledException oce) + { + break; + } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex); diff --git a/TimberWinR/Parser.cs b/TimberWinR/Parser.cs index d1d37ab..baa8e4c 100644 --- a/TimberWinR/Parser.cs +++ b/TimberWinR/Parser.cs @@ -817,7 +817,6 @@ namespace TimberWinR.Parser if (AddField != null && AddField.Length % 2 != 0) throw new JsonAddFieldException(); - } } @@ -835,9 +834,24 @@ namespace TimberWinR.Parser [JsonProperty("json")] public Json Json { get; set; } - + [JsonProperty("geoip")] public GeoIP GeoIP { get; set; } + + [JsonProperty("grokFilters")] + public Grok[] Groks { get; set; } + + [JsonProperty("mutateFilters")] + public Mutate[] Mutates { get; set; } + + [JsonProperty("dateFilters")] + public DateFilter[] Dates { get; set; } + + [JsonProperty("jsonFilters")] + public Json[] Jsons { get; set; } + + [JsonProperty("geoipFilters")] + public GeoIP[] GeoIPs { get; set; } } public class TimberWinR @@ -854,8 +868,14 @@ namespace TimberWinR.Parser get { var list = new List(); + foreach (var filter in Filters) { + //if (filter is Json[]) + //{ + // Json[] ja = filter as Json[]; + // list.AddRange(ja); + //} foreach (var prop in filter.GetType().GetProperties()) { object typedFilter = filter.GetType().GetProperty(prop.Name).GetValue(filter, null); @@ -863,6 +883,11 @@ namespace TimberWinR.Parser { list.Add(typedFilter as LogstashFilter); } + else if (typedFilter != null && typedFilter.GetType().IsArray && typeof(LogstashFilter).IsAssignableFrom(typedFilter.GetType().GetElementType())) + { + IEnumerable lf = typedFilter as IEnumerable; + list.AddRange(lf); + } } } return list.ToArray();