Я использую последнюю версию Serilog с ElasticSink, и у меня следующая конфигурация:
public Startup(IConfiguration configuration)
{
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUri))
{
IndexFormat = "ConsoleAPP-{0:yyyy.MM.dd}",
AutoRegisterTemplate = true,
CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true),
ModifyConnectionSettings = x => x.BasicAuthentication("myusername", "mypassword"),
EmitEventFailure =
EmitEventFailureHandling.WriteToSelfLog |
EmitEventFailureHandling.RaiseCallback |
EmitEventFailureHandling.ThrowException,
FailureCallback = e => {
Console.WriteLine("Unable to submit event " + e.MessageTemplate);
}
})
.WriteTo.File("Logs/log.txt", rollingInterval: RollingInterval.Day, rollOnFileSizeLimit: true)
.CreateLogger();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog();
}
, но когда я go в Кибане, у меня возникают две проблемы. 1. Я не вижу индекса ConsoleApp...
. Только индекс с именем logstash-2020.02.10
2. Внутри этого индекса я вижу несколько сообщений, написанных за час go. Я не вижу никаких новых сообщений журнала, даже если есть активность
Обновление № 1: Вот как я использую его внутри контроллера
public class TestController : ControllerBase
{
private readonly ILogger logger;
public TestController(ILoggerFactory loggerFactory)
{
logger = loggerFactory.CreateLogger<TestController>();
}
[HttpGet]
public string Test()
{
logger.LogInformation("Called Test/Test controller method");
return "ok";
}
}