IdentityServer4 第三部分 主题 第31章 日志
2019-11-19 本文已影响0人
菜鸟飞不动
第31章 日志
IdentityServer使用ASP.NET Core提供的标准日志记录工具。Microsoft文档有一个很好的介绍和内置日志记录提供程序的描述。
我们大致遵循Microsoft使用日志级别的指导原则:
-
Trace
仅供开发人员解决问题的信息。这些消息可能包含敏感的应用程序数据(如令牌),不应在生产环境中启用。 -
Debug
遵循内部流程并理解为何做出某些决定。在开发和调试过程中具有短期实用性。 -
Information
用于跟踪应用程序的一般流程。这些日志通常具有一些长期价值。 -
Warning
对于应用程序流中的异常或意外事件。这些可能包括错误或其他不会导致应用程序停止但可能需要调查的条件。 -
Error
对于无法处理的错误和异常。示例:协议请求的验证失败。 -
Critical
对于需要立即关注的故障。示例:缺少商店实施,无效的密钥材料......
31.1 Serilog的设置
我们个人非常喜欢Serilog。试试看。
31.2 ASP.NET Core2.0+
对于以下配置,您需要Serilog.AspNetCore
和Serilog.Sinks.Console
包:
public class Program
{
public static void Main(string[] args)
{
Console.Title = "IdentityServer4";
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("System", LogEventLevel.Warning)
.MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate)
.CreateLogger();
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseSerilog()
.Build();
}
}