public static EventEvaluatorRule CreateFromFile(string configFilePath) { try { SettingsReader settingsReader = new SettingsReader(configFilePath); EventType eventType = GetEventType(settingsReader.GetConfigParam("Type")); string eventSource = settingsReader.GetConfigParam("Source"); string counterCategory = settingsReader.GetConfigParam("Category"); string counterName = settingsReader.GetConfigParam("Counter"); string counterInstance = settingsReader.GetConfigParam("Instance", false); string extendedData = settingsReader.GetConfigParam("ExtendedData", false); string value = settingsReader.GetConfigParam("Value"); string dateTime = settingsReader.GetConfigParam("DateTime"); string dateFormat = settingsReader.GetConfigParam("DateFormat"); Regex regexRule = new Regex(settingsReader.GetConfigParam("Regex"), RegexOptions.Compiled); List<Regex> excludingRules = settingsReader.GetConfigParams("ExcludeRegex",false).Distinct().Select(r => new Regex(r, RegexOptions.Compiled)). ToList(); var eventEvaluatorRule = new EventEvaluatorRule(eventType, regexRule, excludingRules, eventSource, counterCategory, counterInstance, counterName, extendedData, value, dateTime, dateFormat); _logger.Debug("Rule created from {0} is {2} and has {1} excludings",configFilePath, eventEvaluatorRule.ExcludingRules.Count, eventEvaluatorRule.RegexRule.ToString()); return eventEvaluatorRule; } catch (Exception ex) { _logger.Error("Cannot load EventEvaluatorRule from " + configFilePath + ": " + ex); return null; } }
public static LogWatcher CreateFromFile(string configFilePath) { try { SettingsReader settingsReader = new SettingsReader(configFilePath); Regex fileMask = new Regex(settingsReader.GetConfigParam("FileMask"), RegexOptions.Compiled); Encoding encoding = Encoding.GetEncoding(settingsReader.GetConfigParam("Encoding")); IEnumerable<string> possibleLogDirectories = settingsReader.GetConfigParams("LogDirectory").SelectMany( FilePathHelpers.FindDirectoriesOnFixedDisks); List<string> directories = possibleLogDirectories.SelectMany(FilePathHelpers.GetDirectoriesByMaskedPath).Distinct().ToList(); return new LogWatcher(configFilePath, directories, fileMask, encoding); } catch (Exception ex) { _logger.Error("Cannot load LogWatcher from " + configFilePath + ": " + ex); return null; } }