Сервис логирования

Материал из Megatec
Перейти к: навигация, поиск

Введение

Служба сервиса логирования LogService предназначена для централизованного приёма и хранения логов от клиентских приложений. Она принимает данные по HTTP и сохраняет их в MongoDB, автоматически создавая коллекции и управляя сроком хранения.

Предусловия установки

Служба LogService должна устанавливаться на компьютере, имеющем доступ к серверу базы данных MongoDB, или на компьютере, который сам является сервером базы данных.

Установка службы сервиса логирования

  • Скопировать папку LogService из дистрибутива на сервер.
  • Перед установкой службы сервиса логирования необходимо настроить конфигурационный файл appsettings.json.

Настройка конфигурационного файла appsettings.json

Название Описание Настройка
1 Название службы Задается название службы. По умолчанию служба будет создана с названием MegatecLogService.
"ServiceName": "MegatecLogService"
2 Адрес службы Адрес, на который поступают входящие HTTP-запросы.
"ServiceAddress": [ "http://*:6060" ]
3 IP-адрес IP-адрес, на котором будет работать служба.
"IPAddress": "IPAddress.IPv6Any"
4 Строка подключения к MongoDB Адрес подключения к серверу MongoDB.
"MongoConnectionString": "mongodb://bernoulli.megatec.ru:27017"
5 Префиксы коллекций Префиксы имён коллекций по уровням логирования.
"CollectionPrefixes": {
  "Info": "Info_",
  "Error": "Error_"
}
6 Срок хранения логов Время хранения коллекций (в месяцах).
"RetentionMonths": 12
7 Инициализация при запуске Загружать все коллекции при запуске службы.
"InitializeOnStartup": true
8 Автоочистка Включает удаление устаревших коллекций.
"EnableAutoCleanup": true
9 Интервал очистки Интервал автоочистки в минутах (не используется).
"CleanupIntervalMinutes": 30
10 Индексы по умолчанию Индексы, создаваемые для каждой коллекции.
"DefaultIndexes": [
  "Date",
  "Level",
  "Logger",
  "Properties.MethodName"
]
  • Установка осуществляется запуском скрипта _Install.bat от имени администратора. Запуск от имени администратора
  • При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта LogService. Правила для входящих подключений MasterTourService
  • В Службах Windows добавляется служба MegatecLogService.

MegatecLogService

  • Для удаления службы необходимо запустить скрипт _UnInstall.bat от имени администратора. При этом будут удалены правила для входящих подключений.

Формат входящих сообщений

Одиночный лог

{
  "DatabaseName": "IntegrationService1",
  "LogJson": "{ \\"Level\\": \\"Info\\", \\"Date\\": \\"2025-06-16T06:49:27Z\\", \\"Logger\\": \\"SomeClass\\", \\"Message\\": \\"Message text\\" }"
}

Пакет логов

{
  "DatabaseName": "IntegrationService1",
  "LogsJson": [
    "{ \\"Level\\": \\"Info\\", \\"Date\\": \\"2025-06-16T06:49:27Z\\", ... }",
    "{ \\"Level\\": \\"Error\\", \\"Date\\": \\"2025-06-16T06:50:00Z\\", ... }"
  ]
}

Хранение логов

  • Каждая коллекция создаётся в формате: <префикс><год_месяц> (например: Info_2025_07).
  • Коллекции создаются и индексируются автоматически.
  • Устаревшие коллекции удаляются при поступлении новых (если включена автоочистка).
  • Собственные логи службы сохраняются в:
 * Logs/RunLogger.txt — стандартные сообщения;
 * Logs/ExceptionLogger.txt — ошибки.

Настройка IntegrationService Interlook для работы с сервисом службы логирования

Настройка конфигурационного файла web.config

Настройки задаются в секции <appSettings> файла web.config.

Описание Значение Настройка
1 Подключение к базе данных Строка подключения к базе данных
<add key="connectionString" value="Data Source=server;Initial Catalog=Base;User Id=User;Password=Password;Application Name=Interlook.IntegrationService" />
2 Процедура перезапуска кэша cachingTime

"cachingTime" value="-1" - инициализация кэша максимально производительная: каждый отель загружается в своем потоке, данные в кэше хранятся постоянно (возможны сбои).
"cachingTime" value="-2"/> - весь кэш загружается в 2 (5,10) потока, в зависимости от значения настройки. Данные в кэше хранятся постоянно. "cachingTime" value="10"/> - кэш не загружается при старте приложения, данные в нем хранятся 10 (300,600) секунд, в зависимости от значения настройки.

<add key="cachingTime" value="-1"/>
3 Уровень использования процессора parallelismDegree

Уровень использования процессора при расчетах
Максимум - 100, минимум - 0

<add key="parallelismDegree" value="70"/>
4 Включение логирования о использовании памяти сервера LogCacheMemory

Настройка служит для регулирования записи логов в таблицу базы данных.
0 - отключены логи и диагностика кеша, 1 - включены логи и диагностика кеша, 2 - тоже что и 1, только пишутся еще дополнительные более детальные логи.

<add key="LogCacheMemory" value="2"/>
5 Настройка для включения логирования с использование сервиса логирования Настройка, позволяющая включать и выключать запись логов в сервис логирования

По умолчанию настройка установлена в значении false.
true - включено, false - выключено

<add key="EnableLogServiceLogging" value="true" />
6 Настройка для установления уровня логирования при использовании сервиса логирования Настройка, позволяющая регулировать уровень записи логов.

Может ринимать значенимя Trace,Debug,Info,Warn,Error,Fatal,Off

<add key="LogServiceMinimumlLogLevel" value="Debug" />
7 Адрес сервиса логирования Адрес сервиса логирования
<add key="LogService" value="http://localhost:6060" />
8 Название базы данных для сервиса логирования *Обязательно для заполнения Настройка, позволяющая указать в какую базу данных MongoDB записывать логи
<add key="LogServiceDatabaseTarget" value="IntegrationService1"/>


9 Количество попыток при ошибке отправки Число повторных попыток
<add key="LogServiceConnectionAttempts" value="10" />

Дополнительно

В секции <system.web> рекомендуется установить:

<compilation debug="false" targetFramework="4.0">

Просмотр информации из базы данных MongoDB

Для просмотра базы данных MongoDB необходимо использовать программу MongoDBCompass.
После скачивания и установки программы необходимо:
Запустить программу.
Указать в поле URL подключение к базе данных.
Ea 438.png
В разделе TLS/SSL установить значение Default.
Ea 439.png
Далее необходимо нажать кнопку Save&Connect.
Откроется окно ввода названия подключения.
Далее нажать кнопку Save&Connect.
Ea 440.png
После первой записи ошибок создастся база с названием, указанным в параметре LogServiceDatabaseTarget конфигурационного файла web.config.
Ea 441.png
Ошибки сохраняются в папку с соответствующим типом: Debug, Error, Fatal, Info, Trace, Warn.
При открытии папки с типом ошибки отобразятся все записи по ошибкам данного типа.
Ea 442.png
Параметры ошибок:

  • id — идентификатор ошибки
  • Date — дата и время ошибки
  • Level — тип ошибки
  • Message — метод в котором сформировалась ошибка
  • Logger — наименование ПО в котором произошла ошибка
  • DBUserID — наименование пользователя от которого сформирована ошибка
  • EventInfo — объект данных
    • Host
    • ThreadID
    • ProcessID
    • ProcessName
    • SessionId
  • Exception — объект данных
    • Type — тип ошибки
    • Message — сообщение ошибки
    • Stacktrace — трассировка стека

Пример записи о конкретной ошибке:
Ea 443.png