我正在尝试为.NET Core项目配置Serilog.这就是我的意思appsettings.json:
"Serilog":
{
"MinimumLevel": "Verbose",
"Enrich": ["FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId"],
"WriteTo": [
{ "Name": "RollingFile",
"Args": {
"pathFormat": "C:/Logfiles/testapp/log-{Date}.json",
"textFormatter": "JsonFormatter",
"fileSizeLimitBytes": 2147483648,
"retainedFileCountLimit": 5
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我看到的问题JsonFormatter是没有拾取,而是使用默认文本格式化程序获取条目.我尝试过使用"formatter": "JsonFormatter",但结果相同.
如果我在代码中配置Serilog,一切正常:
var jsonSink = new RollingFileSink(config["Logger:FilePath"], new JsonFormatter(), 2147483648, 5);
var logger = new Serilog.LoggerConfiguration().WriteTo.Sink(jsonSink);
Run Code Online (Sandbox Code Playgroud)
这是我的相关部分project.json:
"Serilog": "2.2.1",
"Serilog.Extensions.Logging": "1.1.0",
"Serilog.Sinks.Literate": "2.0.0",
"Serilog.Sinks.Seq": "2.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Serilog.Enrichers.Thread": "2.0.0", …Run Code Online (Sandbox Code Playgroud) 我有一个基于 .net core 3.1 的 Web API。
我使用 SeriLog 库作为记录器。
这是我的 SeriLog 配置。Serilog 已从“appsettings.json”配置。
如果存在,我需要将“请求正文”参数添加到日志的输出中。有什么办法可以配置这个。另外,我分享了我的日志输出。
我有这个 .NET Standard 库,我想在其中编写一个 .NET Core 中间件。
在里面我想做:
Endpoint endpoint = httpContext.GetEndpoint();
Run Code Online (Sandbox Code Playgroud)
该GetEndpoint()扩展方法不能得到解决。
我已经引用Microsoft.AspNetCore.Http并且我已经将Microsoft.AspNetCore.Http.Abstractions和Microsoft.AspNetCore.Mvc.Core包添加到项目中。
有没有办法解决这个问题,我错过了什么吗?