我不是专家,但我对 IdentityServer 有所了解,因此我可以提供帮助。 IdentityServer v3 支持一些日志记录提供程序,例如 NLog、Log4Net 或 Serilog。您必须选择要使用的并对其进行配置。
要查看示例,我建议从 github 下载以下项目 IdentityServer3.Samples 以及示例。在那里,您会发现使用 NLog 的 WebHost (minimal) 项目。 WebHost (minimal) 是一个示例,它显示了带有 IIS 的 IdentityServer v3 的基本(最小)配置。
另一个项目SelfHost (Minimal with Serilog) 展示了当 IdentityServer 由控制台应用程序托管(没有 IIS)时,如何使用 Serilog 进行日志记录。
编辑:
Thinktecture.IdentityServer.Core.Logging 命名空间有多个ILogProvider 的实现。以下是其中的几个。
Log4NetLogProvider,使用log4net。
NLogLogProvider,使用NLog。
DiagnosticsTraceLogProvider,使用System.Diagnostics.Trace。
TraceSourceLogProvider,使用System.Diagnostics.TraceSource。
除了首先安装必要的包或引用所需的 Log Provider 所需的库之外,您还需要在启动期间将其设置为当前的 Log Provider,如下所示。
LogProvider.SetCurrentLogProvider(new DiagnosticsTraceLogProvider());
确保您继续执行配置当前日志提供程序使用的底层包或库所需的任何步骤。比如下面的配置可以和DiagnosticsTraceLogProvider一起使用:
<configuration>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="TextWriter"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="Trace.log" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
编辑 2
自从我写下我的答案以来,一些细节已经改变。现在 IdentityServer 使用 LibLog 库,您可以在那里找到 ILogProvider 的不同实现。
Custom Grants (more customization) 项目展示了如何使用 LibLog。