在 IdentityServer3 中禁用信息日志记录
Disable informational logging in IdentityServer3
我正在使用 IdentityServer3(内部版本 2.3.0.0)和企业库进行日志记录。
目前,我将日志选项设置如下
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
如何禁用上述日志记录并仅允许错误日志条目?
这只是将您的日志记录框架配置为不显示 INFO 日志记录的问题。而是仅记录 ERROR 和 FATAL。
如果您想完全禁用日志记录,您可以像这样为 LibLog 配置 NoopLogger:
LogProvider.SetCurrent(new NoopLogProvider());
https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Logging/NoopLogProvider.cs
我已经弄清楚如何配置 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
和 -1 的 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
以避免信息记录。
我正在使用 IdentityServer3(内部版本 2.3.0.0)和企业库进行日志记录。 目前,我将日志选项设置如下
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
如何禁用上述日志记录并仅允许错误日志条目?
这只是将您的日志记录框架配置为不显示 INFO 日志记录的问题。而是仅记录 ERROR 和 FATAL。
如果您想完全禁用日志记录,您可以像这样为 LibLog 配置 NoopLogger:
LogProvider.SetCurrent(new NoopLogProvider());
https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Logging/NoopLogProvider.cs
我已经弄清楚如何配置 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
和 -1 的 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
以避免信息记录。