AWS provides a managed service for Elastic Search + Kibana for everyone who wants (and can pay 😀)
Bellow, I will provide an example about how to write a log to Elastic and also to log the actual HTTP request/response from Elastic.
For the logging, I will use the very famous Serilog library that allows logging the message to different outputs (Console/File/ElasticSearch....) very easily.
Create a new console project and add the following Nuget packages.
![]() |
The logon purposes you need to have an AWS account and to know all the credentials. See code inline comments to understand the purposes
class Program
{ //capture the response/request to the console public static void RequestCompleted(IApiCallDetails le) { Console.WriteLine(le.DebugInformation); } static void Main(string[] args) { //Logging Credentials/Data Environment.SetEnvironmentVariable("AWS_ACCESS_KEY_ID", "XXXXXXXXX"); Environment.SetEnvironmentVariable("AWS_SECRET_ACCESS_KEY", "XXXXXXXXXXXXXXXXX"); Environment.SetEnvironmentVariable("AWS_REGION", "eu-central-1"); //Tell Serilog to write messages to Elastic Log.Logger = new LoggerConfiguration() .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("https://somehost_in_aws")) { BatchPostingLimit = 1, ModifyConnectionSettings = conn => { var httpConnection = new AwsHttpConnection("eu-central-1"); var pool = new SingleNodeConnectionPool(new Uri("https://somehost_in_aws")); var conf = new ConnectionConfiguration(pool, httpConnection); //Show the message pritty printed conf.EnableDebugMode(); conf.PrettyJson(); //this is the callback that will handle printing of the request/response conf.OnRequestCompleted(e=> RequestCompleted(e)); return conf; }, //the name of the index (some kind of the table) that will be created in Elastc IndexFormat = "itest-{0:yyyy.MM}", }) //We also want to see the messages in the console .WriteTo.Console() .CreateLogger(); //this message will be sent to the console and also to Elastic Log.Logger.Error("Error Message from Demo"); Console.ReadKey(); } }
After we run the program in the console we will see the actual request/response
No comments:
Post a Comment