Z.C*_*hen 3 nlog .net-core asp.net-core
以下是我的日志
[2019-05-07 15:55:38.4270][PC-20170829ROEW][信息]我记录的日志
[2019-05-07 15:55:38.4929][PC-20170829ROEW][Info] 路线与 {action = >"Get",controller = "Values"} 匹配。执行动作 >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web)
[2019-05-07 15:55:38.5798][PC-20170829ROEW][Info] 执行操作方法 >QunarFlight.Web.Controllers.ValuesController.Get (QunarFlight.Web) - 验证 >state: Valid
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info]执行操作方法> QunarFlight.Web.Controllers.ValuesController.Get(QunarFlight.Web),返回>结果Microsoft.AspNetCore.Mvc.ObjectResult 22.6363 毫秒。
[2019-05-07 15:55:38.6066][PC-20170829ROEW][Info] 执行 ObjectResult,>写入“System.String[]”类型的值。
我想关闭所有Microsoft默认日志(最后四条记录),只保留我记录的日志(第一条记录)。我修改 appsettings.json 以下内容
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我记录的日志将不会输出。如果我删除“Microsoft.AspNetCore.Mvc”:“警告”我记录的日志将被输出。我应该如何修改它?
应用程序设置.json
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
Run Code Online (Sandbox Code Playgroud)
在Startup.cs中配置
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
env.ConfigureNLog("NLog.config");
loggerFactory.AddNLog();
app.UseMiddleware<CustomMiddleware>();
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
程序.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((builderContext, config) =>
{
config.AddJsonFile("appsetting.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{builderContext.HostingEnvironment.EnvironmentName}.json", true, true)
;
})
.UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)
如果您已将${logger}文件布局包含在 NLog.config 中,那么帮助您设置记录器过滤器会更容易。
但我在谷歌上发现了这个随机线索:
Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor:Information: Executing ObjectResult
Run Code Online (Sandbox Code Playgroud)
所以我想你需要将 MEL-Config 更改为:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore.Hosting": "Warning",
"Microsoft.AspNetCore.Infrastructure": "Warning",
"Microsoft.AspNetCore.Routing": "Warning",
"Microsoft.AspNetCore.Mvc": "Warning"
}
Run Code Online (Sandbox Code Playgroud)
人们甚至可以考虑这样做:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
Run Code Online (Sandbox Code Playgroud)
请注意,NLog v5将自身排除在 Microsoft LoggerFactory 过滤之外。相反,可以在 NLog.config 中使用(也可以在appsettings.jsonfinalMinLevel=中配置):
Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor:Information: Executing ObjectResult
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3630 次 |
| 最近记录: |