Я установил Elasticsearch локально на свой компьютер с Windows 7. Он работает правильно, и я могу запросить его с помощью почтальона. Используя Postman, я также создал индекс cmstest. Это таблица под названием zdsf. Если я получу сопоставление (http://localhost:9200/cmstest/_mapping) для этого индекса, я получите следующее:
Я также могу размещать записи в этой таблице с помощью Postman.
Теперь я пытаюсь использовать Serilog из моего приложения .NET 4.5 для входа в этот локальный экземпляр Elasticsearch, но, похоже, ничего не работает. Вот мой код:
var elasticUri = new Uri("http://localhost:9200/cmstest/zdsf");
var loggerConfig = new LoggerConfiguration()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(elasticUri)
{
AutoRegisterTemplate = true
});
zdsf z = new zdsf();
z.filedate = DateTime.Now;
z.filename = "File2";
var logger = loggerConfig.CreateLogger();
var jsonString = new JavaScriptSerializer().Serialize(z);
logger.Error(jsonString);
Я пробовал использовать следующие URL-адреса:
http://localhost:9200/cmstest/zdsf
Я попытался установить для AutoRegisterTemplate значение true, а также false. Но похоже, что Serilog ничего не пишет в elasticsearch. Это даже не исключение. Он просто заканчивается, ничего не регистрируя.
Еще одна интересная вещь заключается в том, что скрипач не показывает трафик на http://localhost:9200, когда предполагается, что serilog ведение журнала. Но он показывает трафик, когда я делаю запросы через Postman.
Что я делаю неправильно? Как я могу заставить работать Serilog?
ОБНОВЛЕНИЕ 1. Обновлен пакет Nuget ElasticSearch.Net
Я обнаружил, что Sink использует старую версию ElasticSearch.Net. Итак, я удалил пакет Nuget ElasticSearch.Net и загрузил последнюю версию. Это также добавило необходимые BindingRedirects в мой app.config. Но вход в ElasticSearch по-прежнему не работает.