禁用IdentityServer3中的信息日志记录

时间:2016-09-24 10:00:40

标签: oauth-2.0 enterprise-library identityserver3

我使用IdentityServer3(build 2.3.0.0)和Enterprise库进行日志记录。 目前,我将日志选项设置如下

 var options = new IdentityServerOptions
    {
      LoggingOptions = new LoggingOptions()
      {
         EnableHttpLogging = false,
         EnableKatanaLogging = false,
         EnableWebApiDiagnostics = false,
         WebApiDiagnosticsIsVerbose = false
       },
       EventsOptions = new EventsOptions()
       {
         RaiseErrorEvents = true,
         RaiseFailureEvents = true,
         RaiseInformationEvents = false,
         RaiseSuccessEvents = false
       }
    }

以上配置不会禁用以下条目的记录

Returning token response.
End token request
Creating JWT access token
Setting a sliding lifetime: 29100
Creating refresh token
Creating access token
Processing token request
Creating token response 
Start password token request validation
Start token request validation
Client validation success
Secret validator success: HashedSharedSecretValidator
Secret id found: JSApp
Parser found secret: PostBodySecretParser
Start parsing for secret in post body
X.509 certificate not found.
Start parsing for X.509 certificate
Start client validation
Start token request
CorsPolicyService allowed origin

如何禁用上述日志记录并仅允许错误日志条目?

3 个答案:

答案 0 :(得分:2)

这只是将日志记录框架配置为不显示INFO日志记录的问题。而是仅记录ERROR和FATAL。

答案 1 :(得分:0)

如果要完全禁用日志记录,可以为LibLog配置NoopLogger,如:

recyclerView

https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Logging/NoopLogProvider.cs

答案 2 :(得分:0)

我已经想出如何配置EntLib配置以避免信息日志记录。

如果将CategoryFilter用作logFilter,则可以通过将switchValue设置为Warning(或根据您的需要提供任何其他值)来停用信息记录。

<add switchValue="Warning" name="Information">
        <listeners>
          <add name="Database Trace Listener" />
        </listeners>
</add>

如果将PriorityFilter用作logFilter,则需要注意的一点是LibLog未设置LogEntry的优先级参数。

因此,EntLib默认priority为“-1” 但是,EntLib不会使用priority过滤LogEntries(即使minimumPriority设置为“-1”)。 https://msdn.microsoft.com/en-us/library/dn440731(v=pandp.60).aspx

因此,在这种情况下,logEntires会在特殊类别源

处结束
<specialSources>
    <allEvents switchValue="All" name="All Events" />
    <notProcessed switchValue="Warning" name="Unprocessed Category">
        <listeners>
             <add name="Database Trace Listener" />
        </listeners>
    </notProcessed>
    <errors switchValue="All" name="Logging Errors & Warnings"/>
</specialSources>

在此处,将notProcessed类别的switchValue设置为Warning以避免信息记录。