通过Azure KeyVault抑制控制台日志记录

Mar*_*ert 2 c# azure azure-keyvault

我在Net Core 2控制台应用程序中使用C#访问Azure密钥保管库.每当应用程序运行时,当我从保险库中检索秘密时,控制台窗口会被这样的消息命中:

2017-12-26T18:03:49.8610049Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs:ADAL PCL.CoreCLR,汇编版本为"3.17.3.35304",文件版本为"3.17.41219.2324",信息版本为"b6afaeae7cff965e66649e0ee7e8c29071d5a7e6" '正在运行... 2017-12-26T18:03:49.8621855Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs:===令牌获取开始:权限:https://login.windows.net/ [...] / 资源:https: //vault.azure.net ClientId:[...] CacheType:null认证目标:客户端

2017-12-26T18:03:49.8981211Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs:从缓存加载.

2017-12-26T18:03:49.9010018Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - TokenCache.cs:查找令牌的缓存...

2017-12-26T18:03:49.9060990Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - TokenCache.cs:缓存中未找到匹配的令牌

2017-12-26T18:03:50.2185881Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - TokenCache.cs:在缓存中存储令牌...

2017-12-26T18:03:50.2211369Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - TokenCache.cs:项目存储在缓存中

2017-12-26T18:03:50.2351165Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs:===令牌获取成功完成.重新调整了访问令牌:

    Access Token Hash: [...]
    Expiration Time: 12/26/2017 7:03:49 PM +00:00
    User Hash: null
Run Code Online (Sandbox Code Playgroud)

我不记得在我的代码中做任何事情来为密钥库访问设置任何类型的日志记录.但是,我已经在整个应用程序中配置了Serilog的ILogger,所以也许这会以某种方式被拾取.

如何禁止显示这些消息?

Bru*_*hen 6

根据你的描述,我检查了Microsoft.Azure.KeyVault的源代码,但没有找到任何相关的日志记录.

2017-12-26T18:03:49.8610049Z:29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase .cs:ADAL PCL.CoreCLR,汇编版本为"3.17.3.35304",文件版本为"3.17.41219.2324",信息版本

根据日志信息,我试图利用ILSpy反编译Microsoft.IdentityModel.Clients.ActiveDirectory包,并找到以下代码:

在此输入图像描述

在此输入图像描述

您可以通过以下代码禁用ADAL库下的跟踪日志记录:

LoggerCallbackHandler.UseDefaultLogging = false;
Run Code Online (Sandbox Code Playgroud)

测试:

在此输入图像描述