public EventLogOnElasticSearch(ConnectionSettings elasticSettings, int portion) { _indexSeparationPeriod = IndexSeparationPeriod.None; _portion = portion; if (elasticSettings == null) { IConfiguration Configuration = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .Build(); IConfigurationSection elasticSearchSection = Configuration.GetSection("ElasticSearch"); Uri nodeAddress = elasticSearchSection.GetValue <Uri>("Node"); string indexName = elasticSearchSection.GetValue <string>("IndexName"); string indexSeparation = elasticSearchSection.GetValue <string>("IndexSeparationPeriod"); int maximumRetries = elasticSearchSection.GetValue <int>("MaximumRetries"); int maxRetryTimeout = elasticSearchSection.GetValue <int>("MaxRetryTimeout"); elasticSettings = new ConnectionSettings(nodeAddress) .DefaultIndex(indexName) .MaximumRetries(maximumRetries) .MaxRetryTimeout(TimeSpan.FromSeconds(maxRetryTimeout)); SetIndexSeparationPeriod(indexSeparation); } _client = new ElasticClient(elasticSettings); }
public static string GetIndexSeparationPeriod(this DateTime period, IndexSeparationPeriod separation) { string separationWithFormat; switch (separation) { case IndexSeparationPeriod.Hour: separationWithFormat = period.ToString("yyyyMMddhh0000"); break; case IndexSeparationPeriod.Day: separationWithFormat = period.ToString("yyyyMMdd000000"); break; case IndexSeparationPeriod.Week: separationWithFormat = period.StartOfWeek(DayOfWeek.Monday).ToString("yyyyMMdd000000"); break; case IndexSeparationPeriod.Month: separationWithFormat = period.StartOfMonth().ToString("yyyyMM01000000"); break; case IndexSeparationPeriod.Quarter: separationWithFormat = period.StartOfQuarter().ToString("yyyyMM01000000"); break; case IndexSeparationPeriod.HalfYear: separationWithFormat = period.StartOfHalfYear().ToString("yyyyMM01000000"); break; case IndexSeparationPeriod.Year: separationWithFormat = period.StartOfYear().ToString("yyyyMM01000000"); break; default: separationWithFormat = "FULL"; break; } return(separationWithFormat); }
public void SetIndexSaparationPeriod(IndexSeparationPeriod separation) { _indexSeparationPeriod = separation; }