Подавление ведения журнала консоли с помощью Azure KeyVault

Я получаю доступ к хранилищу ключей Azure с помощью C # в консольном приложении Net Core 2. Каждый раз, когда приложение запускается, в окне консоли появляются такие сообщения, когда я извлекаю секрет из хранилища:

2017-12-26T18: 03: 49.8610049Z: 29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs: ADAL PCL.CoreCLR с версией сборки '3.17.3.35304', версией файла '3.17.41219.2325ec' и информацией о версиях 'работает ... 2017-12-26T18: 03: 49.8621855Z: 29c98a86-9e1d-4a5d-86d6-daf8f2cfdc56 - AcquireTokenHandlerBase.cs: === Получение токена начато: Полномочия: https://войти.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

Я не помню, чтобы что-то в моем коде настраивало какое-либо ведение журнала для доступа к хранилищу ключей. Тем не менее, я настроил ILogger Serilog во всем приложении, так что, возможно, это каким-то образом подхватывается.

Как отключить отображение этих сообщений?


person Mark Olbert    schedule 26.12.2017    source источник
comment
Вы смотрели на добавление фильтра?   -  person jwdonahue    schedule 26.12.2017
comment
Я попробую, если прямого ответа не будет. Я не уверен, что сообщения, которые я вижу в окне консоли, приходят через Serilog или попадают ли они туда через какой-то другой механизм.   -  person Mark Olbert    schedule 27.12.2017
comment
Извините, мой C # foo не силен после года, когда я не писал кода. Я думаю, что все поставляемые Microsoft .NET dll распознают и прочитают файл конфигурации, если он находится рядом с ними, и я знаю, что существует стандартный способ настройки диагностических выводов с помощью содержащегося в нем XML. Не знаю, работает ли это с Serilog или нет.   -  person jwdonahue    schedule 27.12.2017


Ответы (2)


Согласно вашему описанию, я проверил исходный код 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;

ТЕСТ:

введите описание изображения здесь

person Bruce Chen    schedule 29.12.2017
comment
@Bruce_Chen, это самый замечательный ответ, который я видел на stackoverflow за долгое-долгое время. Если бы я мог наградить более одной звездой или большим пальцем, я бы сделал это. Спасибо! Я бы ›› никогда ‹< не подумал бы исследовать проблему так, как это сделали вы. Так что спасибо за то, что меня этому тоже научили. - person Mark Olbert; 29.12.2017

Для версии 2.x из Microsoft.IdentityModel.Clients.ActiveDirectory вам необходимо вызвать это:

using Microsoft.IdentityModel.Clients.ActiveDirectory;

AdalTrace.LegacyTraceSwitch.Level = TraceLevel.Error;

Для версии 3.x + используйте ответ Bruce_Chen:

LoggerCallbackHandler.UseDefaultLogging = false;

person Philip Pittle    schedule 12.01.2018