默认项目模板在appSettings.json
中具有以下日志记录配置:
"Logging": {
"IncludeScopes": true,
"LogLevel":
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
Default
,System
和Microsoft
是什么?
答案 0 :(得分:3)
System
和Microsoft
命名空间程序集都有一个值得尊重的日志记录级别。考虑一个 MVC 6 应用程序,在project.json
中假设您具有"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final"
的依赖关系 - 此程序集以" Microsoft"为前缀。在内部,其日志记录将以您的配置中指定的级别输出。
同样,在您的应用程序中"Default"
与您的应用程序相关。请考虑以下事项:
void FooBar(ILogger logger)
{
logger.LogCritical("LoglLevel.Critical");
logger.LogDebug("LoglLevel.Debug");
logger.LogError("LoglLevel.Errror");
logger.LogInformation("LoglLevel.Information");
logger.LogTrace("LoglLevel.Trace"); // This message would not be written
logger.LogWarning("LoglLevel.Warning");
}
// This is the severity
public enum LogLevel
{
Trace,
Debug,
Information,
Warning,
Error,
Critical,
None
}
因此,如果您设置"Microsoft": "Critical"
并在内部MVC遇到并通过logger.LogError
方法记录异常,则不会将其写入日志的输出中。