Я разрабатываю сервер API с ASP.NET Core 2.2, а мой сервер — Ubuntu 18.04.
У меня есть файл журнала для состояний моих API, но мне не хватает информации о состоянии ASP.NET(Kestrel), такой как результат маршрутизации к моим контроллерам.
ASP.NET генерирует журналы, как показано ниже.
ServerApplication> info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
ServerApplication> Request starting HTTP/1.1 GET
http://localhost:57904/api
ServerApplication> info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
ServerApplication> Request starting HTTP/1.1 DEBUG
http://localhost:57904/ 0
ServerApplication> info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
ServerApplication> Request finished in 36.827ms 200
ServerApplication> info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1]
Я хочу прослушать или поймать эти журналы, чтобы поместить их в свой файл журнала.
Я бы прочитал эта статья, но, похоже, речь не идет о прослушивании журналов.
Как решить эту проблему?
@SoumenMukherjee У меня есть собственный API ведения журналов, и я не чувствую, что это плохо. Я просто хочу знать о состояниях пустельги. Не протоколирование API.
так что я вижу, что вы написали свой собственный приемник событий.. хорошо..





Я только что настроил Serilog.Extensions.Logging.File.
using Serilog;
using Serilog.Core;
using Serilog.Events;
public void Configure(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
loggerFactory.AddSerilog(
new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.Sink(new LogEventSink())
.CreateLogger());
}
public class LogEventSink : ILogEventSink
{
public void Emit(LogEvent logEvent)
{
string message = logEvent.RenderMessage();
// Write to my log.
}
}
Вы можете попробовать Serilog , он предоставляет вам различные возможности для обогащения и регистрации событий в разных форматах и назначениях.