asp.net-core - 通过注释“LogLevel”属性显示日志信息
问题描述
我对.Net Core 很陌生。我正在使用默认的 ILogger 提供程序进行基本的信息记录。最初我的AppSetting.json没有被注释并且能够看到我写的日志。
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"AllowedHosts": "*"
}
后来,我评论了这些LogLevel
属性并在 Krestel 服务器上运行了应用程序。然后我仍然可以在控制台中看到记录的信息。
应用设置.json
{
"Logging": {
//"LogLevel": {
// "Default": "Debug",
// "System": "Information",
// "Microsoft": "Information"
//}
},
"AllowedHosts": "*"
}
程序.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging)
=>
{
logging.ClearProviders();
logging.AddConfiguration(context.Configuration.GetSection("Logging"));
logging.AddConsole();
})
.UseStartup<Startup>();
HomeController.cs中的示例日志记录方法
public void LogExceptionToConsole()
{
_logger.LogError("This is raised by logger information");
}
安慰
为什么会出现这种行为?如果这是行为,为什么它被设计成这样?谁能给我解释一下。
提前致谢
解决方案
ASP.NET Core 定义了以下日志级别,此处按严重性从低到高排序:
Trace = 0 (Disabled by default)
Debug = 1
Information = 2
Warning = 3
Error = 4
Critical = 5
如果在应用程序(startup.cs 或 program.cs 或 appsettings.json 或 appsettings.development.json)中没有为 LogCategory 设置 LogLevel,则默认情况下,Minimum LogLevel 设置为 Information。
因此,在您的示例中,将记录错误,因为它高于默认的最小 LogLevel。
您可以参考此链接了解更多详情
推荐阅读
- python-3.x - 从任务创建函数返回异步回调结果
- c# - 使用通过 Xamarin 的意图参数重定向到应用程序
- swift - Google Places Picker 不再工作,说:iOS 的 Places API 未启用。请参阅开发人员指南
- datatable - Google Material Design - 数据表过滤栏中的复杂条件过滤芯片
- reactjs - 在 React 中获取单击元素的道具
- python - setup.py 是否真的将包加载到 GCP 数据流?
- spring - 如何延长 Spring Webflow 中的会话持续时间?
- java - 乘 ID 映射抛出 BaseEntity
- java - Spring-remoting SimpleHttpInvokerRequestExecutor 在不应该的时候重试请求
- vba - 调用对象时是否可以包含变量