c# - 使用 serilog 在 asp.net core 2.2 中关闭 mvc 请求日志记录
问题描述
我Serilog.Extensions.Logging.File
用来登录文件。
这是我的appsettings.json
文件:
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "None",
"Microsoft": "None"
}
},
"LoggingFile": {
"IncludeScopes": false,
"pathFormat": "C:/logs/APILogs-{Date}.log",
"LogLevel": {
"Default": "Trace",
"System": "None",
"Microsoft": "None"
}
}
我的 Startup.cs 代码:
public void Configure(
IApplicationBuilder app,
IHostingEnvironment env,
IApiVersionDescriptionProvider provider,
ILoggerFactory loggerFactory)
{
// Removed other codes
loggerFactory.AddFile(Configuration.GetSection("LoggingFile"));
}
但它仍然记录 mvc 请求信息,如下所示:
2019-09-21T13:28:59.6337460+05:30 80000019-0004-ff00-b63f-84710c7967bb [INF] 请求开始 HTTP/1.1 GET http://localhost:53534/api/values (ca22a1cb)
2019-09-21T13:28:59.8309629+05:30 80000019-0004-ff00-b63f-84710c7967bb [INF] 请求在 202.16 毫秒内完成 200 (791a596a)
2019-09-21T13:29:00.1500727+05:30 8000001a-0004-ff00-b63f-84710c7967bb [INF] 请求开始 HTTP/1.1 GET http://localhost:53534/favicon.ico (ca22a1cb)
2019-09-21T13:29:00.2020227+05:30 8000001a-0004-ff00-b63f-84710c7967bb [INF] 请求在 73.5631 毫秒内完成 200 (791a596a)
我不记录这些。它应该只在我想记录时记录,例如在我的控制器中
_logger.LogInformation("Hello Info");
_logger.LogError("Hello error");
解决方案
将以下代码行添加到启动的构造函数
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Error)
.MinimumLevel.Override("System", LogEventLevel.Error)
.Enrich.FromLogContext()
.WriteTo.RollingFile("C:/logs/APILogs-{Date}.log")
.CreateLogger();
然后在配置方法中,添加以下行。
loggerFactory.AddSerilog();
欲了解更多信息:Serilog
您可以从 appsettings 中删除配置。
推荐阅读
- c# - 在一个循环中循环多维数组
- typescript - 跨浏览器扩展
- regex - 有没有办法重复以前使用的特定正则表达式
- python - 为什么索引给出完全错误的输出?
- c++ - 发送源代码时省略未使用的 boost src 文件的策略
- php - (#12) analytics_app_events_exports 对于 v3.0 及更高版本已弃用
- r - 绘图大小 = 1/{N∗⌈log2N⌉∗[(1/70)/60]} 在 R 中?
- javascript - 如何将队列中的重复数据添加到 JavaScript 数组中?
- svg - SVG 徽标上带圆圈的文本(顶部和底部)
- javascript - 表单数据未发布