Show / Hide Table of Contents

Конфигурация

Общие параметры конфигурации адаптеров

Параметры конфигурации адаптера размещаются в файлах 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"
				]
			}
		}
	]
}

Смотри также

  • Типы файлов и папки
  • Improve this Doc
In This Article
Back to top Все права защищены (C) 1994-2022 ООО Топ Софт.