ASP.NET Core MVC 6中的默认,系统和Mi​​crosoft LogLevels是什么

时间:2016-05-24 15:17:27

标签: asp.net logging asp.net-core asp.net-core-mvc

默认项目模板在appSettings.json中具有以下日志记录配置:

"Logging": {
  "IncludeScopes": true,
  "LogLevel": 
    "Default": "Debug",
    "System": "Information",
    "Microsoft": "Information"
  }
}

DefaultSystemMicrosoft是什么?

1 个答案:

答案 0 :(得分:3)

SystemMicrosoft命名空间程序集都有一个值得尊重的日志记录级别。考虑一个 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方法记录异常,则不会将其写入日志的输出中。