Very basic logging to console from netcore webapi with Serilog

Add serilog required packages

dotnet add package Serilog.AspNetCore
dotnet add package Serilog.Sinks.ElasticSearch


using Serilog;
using Serilog.Sinks.Elasticsearch;

Configure serilog on CreateHostBuilder. Only relevant code is included.

public class Program
    private const string ApplicationId = "Bustroker.Transactions.WebApi";
    private const string ElasticEndpoint = "http://localhost:9200";


    public static IHostBuilder CreateHostBuilder(string[] args) =>
            .UseSerilog((hostincContext, loggerConfiguration) => // send to Elastic for real time monitoring
            .ConfigureWebHostDefaults(webBuilder =>
    private static LoggerConfiguration ConfigureSerilogLoggerWithElastic(LoggerConfiguration loggerConfiguration)
        var sinkOptions = new ElasticsearchSinkOptions(new Uri(ElasticEndpoint))
            AutoRegisterTemplate = true,
            AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
            IndexFormat = $"{ApplicationId}-{0:yyyy.MM}"                                    

        return loggerConfiguration

Then add

// Startup.cs
 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    if (env.IsDevelopment())



Now use it

public class OperationsController : ControllerBase
    private readonly ILogger<OpsController> _logger;

    public OperationsController(ILogger<OpsController> logger)
        _logger = logger;

    [HttpGet, Route("{currency}")]
    public async Task<IActionResult> Get(string currency)
        _logger.LogInformation("Processed request /operations in '{currency}'", currency);
        return Ok(result);

Use kibana to query the elastic. Otherwise, the API can be used instead.

Check the index has been created in elastic. Note that capital letters have been removed.

curl http://localhost:9200/bustroker.transactions.webapi-*

Query all the entries for the index

curl http://localhost:9200/bustroker.transactions.webapi-*/_search?q=*