C# 如何在ASP.NET Core 2.2中侦听输出日志

C# 如何在ASP.NET Core 2.2中侦听输出日志,c#,asp.net-core,asp.net-core-webapi,C#,Asp.net Core,Asp.net Core Webapi,我正在用ASP.NETCore2.2开发一个API服务器,我的服务器机器是Ubuntu18.04 我有一个记录API状态的日志文件,但我觉得缺少ASP.NET(Kestrel)状态信息,比如到控制器的路由结果 ASP.NET将生成如下所示的日志 ServerApplication> info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] ServerApplication> Request starting HTTP/

我正在用ASP.NETCore2.2开发一个API服务器,我的服务器机器是Ubuntu18.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]
我想监听或捕获这些日志,并将其放入日志文件中

我读过,但它似乎不是在谈论听日志


如何解决这个问题?

我刚刚调整了
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,它为您提供了各种选项来丰富和记录不同格式和目的地的事件。@SoumenMukherjee我有自己的日志API,我觉得它并不坏。我只是想知道红隼的状态。没有记录API。所以我看到您编写了自己的自定义事件接收器。。好的