C# 如何在ASP.NET Core 2.2中侦听输出日志
我正在用ASP.NETCore2.2开发一个API服务器,我的服务器机器是Ubuntu18.04 我有一个记录API状态的日志文件,但我觉得缺少ASP.NET(Kestrel)状态信息,比如到控制器的路由结果 ASP.NET将生成如下所示的日志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/
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。所以我看到您编写了自己的自定义事件接收器。。好的