Конфигурация
Общие параметры конфигурации адаптеров
Параметры конфигурации адаптера размещаются в файлах appsettings.{EnvironmentName}
.json.
Конфигурация адаптера может содержать в себе следующие основные свойства:
Свойство | Описание |
---|---|
Logging | Конфигурацию ведения журналов |
AllowedHosts | Специальная конфигурация, которая принимает список имен хостов |
AppSettings | Набор настроек для приложения |
ConnectionStrings | Список строк подключения к внешним источникам данных |
Services | Определяет коллекцию микросервисов используемых адаптером и их конфигурации |
Logging
Свойство Logging
может содержать свойство LogLevel и свойства поставщика журналов. Свойство LogLevel
указывает минимальный уровень журнала для выбранных категорий. Уровни журналов задаются в диапазоне от 0 до 6, где:
Trace
= 0, Debug
= 1, Information
= 2, Warning
= 3, Error
= 4, Critical
= 5 и None
= 6.
Свойство поставщика может задавать свойство LogLevel
. Свойство LogLevel
поставщика определяет уровень ведения журналов для этого поставщика и переопределяет любые другие не относящиеся к поставщику параметры ведения журналов.
Пример описания свойства LogLevel
в файле appsettings.json:
{
// Все провайдеры, Loglevel применяется ко всем поставщикам, которые поддерживают это свойство
"Logging": {
"LogLevel": {
// Журнал по умолчанию, Error и выше
"Default": "Error",
// Все категории Microsoft *, Warning и выше.
"Microsoft": "Warning"
},
// Debug провайдер.
"Debug": {
"LogLevel": {
// Переопределение предыдущих настроек LogLevel:Default.
"Default": "Information",
// Категория для Debug:Microsoft.Hosting.
"Microsoft.Hosting": "Trace"
}
},
// EventSource провайдер
"EventSource": {
"LogLevel": {
// Все категории EventSource провайдера.
"Default": "Warning"
}
}
}
}
Подробности в разделе Конфигурационных файлов.
Категория/Провайдер | Свойство | Описание |
---|---|---|
Logging | LogLevel | Все провайдеры, Loglevel применяется ко всем поставщикам, которые поддерживают это свойство |
Debug | LogLevel | Debug провайдер. |
EventSource | LogLevel | EventSource провайдер. |
Note
Параметры в Logging.{providername}.LogLevel
переопределяют параметры в Logging.LogLevel
.
Минимальный уровень ведения журнала можно указать для:
- конкретных поставщиков. Например:
Logging:EventSource:LogLevel:Default:Information
- конкретных категорий. Например:
Logging:LogLevel:Microsoft:Warning
- всех поставщиков и всех категорий:
Logging:LogLevel:Default:Warning
Note
Любые журналы с уровнем ниже минимального:
- не передаются поставщику;
- не записываются в журнал и не отображаются.
Чтобы отключить все журналы, укажите LogLevel.None.
LogLevel.None
имеет значение 6, то есть выше LogLevel.Critical
(5).
Если поставщик поддерживает области журналов, IncludeScopes
определяет, включены ли они.
Следующее описание файла appsettings.json / appsettings.{EnvironmentName}
.json содержит все поставщики, включенные по умолчанию:
{
"Logging": {
"LogLevel": { // Нет поставщика, Loglevel применяется ко всем включенным поставщикам.
"Default": "Error",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Warning"
},
"Debug": { // Debug провайдер.
"LogLevel": {
"Default": "Information" // Переопределяет предыдущую настройку LogLevel:Default.
}
},
"Console": {
"IncludeScopes": true,
"LogLevel": {
"Microsoft.AspNetCore.Mvc.Razor.Internal": "Warning",
"Microsoft.AspNetCore.Mvc.Razor.Razor": "Debug",
"Microsoft.AspNetCore.Mvc.Razor": "Error",
"Default": "Information"
}
},
"EventSource": {
"LogLevel": {
"Microsoft": "Information"
}
},
"EventLog": {
"LogLevel": {
"Microsoft": "Information"
}
}
}
}
В данном примере:
- Категории и уровни не являются предлагаемыми значениями. Этот пример представлен с целью продемонстрировать все поставщики по умолчанию.
- Параметры в
Logging.{providername}.LogLevel
переопределяют параметры вLogging.LogLevel
. Например, уровень вDebug.LogLevel.Default
переопределяет уровень вLogLevel.Default
. - Каждый поставщик по умолчанию использует псевдоним. Каждый поставщик определяет псевдоним, используемый в конфигурации вместо полного имени типа. Ниже приведены псевдонимы встроенных поставщиков:
- Console
- Debug
- EventSource
- EventLog
- ApplicationInsights
AllowedHosts
Данный список имен хостов разделяется точкой с запятой, без номеров портов.
ПО промежуточного слоя фильтрации узлов отключено по умолчанию. Чтобы включить ПО промежуточного слоя, определите свойство AllowedHosts
в appsettings.json / appsettings.{EnvironmentName}
.json:
{
"AllowedHosts": "example.com;localhost"
}
AppSettings
Настройки для приложения содержат:
Настройка | Описание |
---|---|
CurrentCulture |
определения для локализации |
MetadataProviderId |
параметр указывает идентификатор адаптера |
NuGetPackage |
настройки NuGet пакетов. Содержит свойство Repository указывающее на путь к размещению пакетов, может задаваться через точку с запятой |
Пример заполнения свойства NuGetPackage
в файле appsettings.json / appsettings.{EnvironmentName}
.json:
{
"NuGetPackage":
{
"Repository": "D:\\LocalPackages"
}
}
MassTransit
- Содержит определение настроек брокера сообщений. Подробнее см. в Брокеры сообщений.
ConnectionStrings
Конфигурация строк подключения разбитых по псевдонимам, для подключения к внешним источникам данных, например в базам данных.
Основные необходимые строки подключения к источникам данных в адаптерах, имеют псевдонимы DIPConnectionString
и KeyLocator
, каждый из которых сожержит параметры подключения к базе данных. В зависимости от реализации адаптра, в текущий раздел конфигурации могут добавляться дополнительные строки подключения.
{
"ConnectionStrings":
{
"DIPConnectionString": // Строка подключения к базе данных адаптера
{
"ConnectionString": "Data Source={databa_source};Initial Catalog={catalog};Integrated Security=True",
"ProviderName": "System.Data.SqlClient",
"CommandTimeout": 100
},
"KeyLocator": // Строка подключения к базе данных адаптера KeyLocator
{
"ConnectionString": "Data Source={databa_source};Initial Catalog={catalog};Integrated Security=True",
"ProviderName": "System.Data.SqlClient",
"CommandTimeout": 100
}
}
}
Каждый из псевдонимов содержит свойство ConnectionString
, которое описывает строку подключения к базе данных. Синтаксис описания данной строки см. в синтаксис строки подключения.
Свойство ProviderName
, настройки подключения к базе данных, указывает используемого поставщика для подключения к базе данных.
Так же настройки подключения к дазам данных могут содержать свойство CommandTimeout
, как это показано в коде конфигурации выше. Данныое свойство определяет время ожидания (в секундах) при выполнении команды перед завершением попытки и генерацией ошибки. Значение по умолчанию — 30.
Services
Описание конфигурации каждого микросервиса заключается в фигурные скобки и содержи обязательное свойство AssemblyQualifiedName
, в которой через запятую указывается строка с полным именем сервиса и имя файла библиотеки где этот сервис расположен. Так же конфигурация микросервиса может содержать свойство Settings
с настройками для него. Пример настройки микросервисов приведён в коде ниже.
{
"Services": [
{ // Пример подключения микросервиса без дополнительных настроек
"AssemblyQualifiedName": "T2.DIP.KeyLocator.DB.Services.KeyLocatorDbService, T2.DIP.KeyLocator.DB"
},
{ // Пример подключения микросервиса с дополнительными настройками.
"AssemblyQualifiedName": "T2.DIP.GRPC.Server.Services.GrpcServer, T2.DIP.GRPC.Server",
"Settings": {
"Host": "localhost",
"Port": 5000,
"Processors": [
"T2.DIP.Proto.Lock.Processors.LockCommandsProcessor, T2.DIP.Proto.Lock"
]
}
}
]
}
Смотри также