/// <summary> /// Load the config file from the disk. /// </summary> /// <remarks> /// New config file will be created if not found. /// </remarks> /// <returns>Loaded or created config.</returns> public static ElasticConfig Load() { var configPath = Path.Combine(Directory.GetCurrentDirectory(), ConfigName); var configSerializer = new XmlSerializer(typeof(ElasticConfig)); if (!File.Exists(ConfigName)) { _logger.Info($"Generating default config at {configPath}"); var config = new ElasticConfig { NodeUrl = DefaultNodeUrl, }; using (var file = File.Create(configPath)) { configSerializer.Serialize(file, config); } return(config); } _logger.Info($"Loading config {configPath}"); using (var file = File.OpenRead(configPath)) { return((ElasticConfig)configSerializer.Deserialize(file)); } }
/// <inheritdoc/> public override void Attach() { try { var config = ElasticConfig.Load(); var settings = new ConnectionSettings(new Uri(config.NodeUrl)); ElasticClient = new ElasticClient(settings); // ping the elasticsearch server & output error log if 404 Task.Factory.StartNew(PingTest, _canceller.Token); } catch (Exception e) { _logger.Error(e); } }