Сервис логирования — различия между версиями
| [досмотренная версия] | [досмотренная версия] |
Aefremov (обсуждение | вклад) (→Настройка конфигурационного файла web.config) |
Gavrilov (обсуждение | вклад) (→Настройка конфигурационного файла web.config) |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | ==Введение== | + | ==Введение== |
| − | Служба сервиса логирования | + | Служба сервиса логирования LogService предназначена для централизованного приёма и хранения логов от клиентских приложений. Она принимает данные по HTTP и сохраняет их в MongoDB, автоматически создавая коллекции и управляя сроком хранения. |
| − | ==Предусловия установки== | + | |
| − | Служба LogService должна устанавливаться на компьютере, имеющем доступ к серверу базы данных MongoDB, или на компьютере, который сам является сервером базы данных. | + | ==Предусловия установки== |
| + | Служба LogService должна устанавливаться на компьютере, имеющем доступ к серверу базы данных MongoDB, или на компьютере, который сам является сервером базы данных. | ||
| + | |||
==Установка службы сервиса логирования== | ==Установка службы сервиса логирования== | ||
| − | * Скопировать папку ''LogService'' из дистрибутива на сервер. | + | * Скопировать папку ''LogService'' из дистрибутива на сервер. |
* Перед установкой службы сервиса логирования необходимо настроить конфигурационный файл ''appsettings.json''. | * Перед установкой службы сервиса логирования необходимо настроить конфигурационный файл ''appsettings.json''. | ||
| − | ==Настройка конфигурационного файла appsettings. | + | |
| + | ==Настройка конфигурационного файла appsettings.json== | ||
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
|- style="background-color:#F2F2F2" | |- style="background-color:#F2F2F2" | ||
| Строка 16: | Строка 19: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
| − | |||
| 1 | | 1 | ||
| Название службы | | Название службы | ||
| Строка 25: | Строка 27: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
| − | |||
| 2 | | 2 | ||
| − | | Адрес | + | | Адрес службы |
| − | | Адрес | + | | Адрес, на который поступают входящие HTTP-запросы. |
| − | | <syntaxhighlight lang=" | + | | <syntaxhighlight lang="json" enclose="div"> |
"ServiceAddress": [ "http://*:6060" ] | "ServiceAddress": [ "http://*:6060" ] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
| + | | 3 | ||
| + | | IP-адрес | ||
| + | | IP-адрес, на котором будет работать служба. | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "IPAddress": "IPAddress.IPv6Any" | ||
| + | </syntaxhighlight> | ||
| − | | | + | |- style="vertical-align:text-top" |
| − | | Строка подключения к | + | | 4 |
| − | | | + | | Строка подключения к MongoDB |
| − | | <syntaxhighlight lang=" | + | | Адрес подключения к серверу MongoDB. |
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
"MongoConnectionString": "mongodb://bernoulli.megatec.ru:27017" | "MongoConnectionString": "mongodb://bernoulli.megatec.ru:27017" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 5 | ||
| + | | Префиксы коллекций | ||
| + | | Префиксы имён коллекций по уровням логирования. | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "CollectionPrefixes": { | ||
| + | "Info": "Info_", | ||
| + | "Error": "Error_" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 6 | ||
| + | | Срок хранения логов | ||
| + | | Время хранения коллекций (в месяцах). | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "RetentionMonths": 12 | ||
| + | </syntaxhighlight> | ||
| + | |||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
| + | | 7 | ||
| + | | Инициализация при запуске | ||
| + | | Загружать все коллекции при запуске службы. | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "InitializeOnStartup": true | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 8 | ||
| + | | Автоочистка | ||
| + | | Включает удаление устаревших коллекций. | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "EnableAutoCleanup": true | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 9 | ||
| + | | Интервал очистки | ||
| + | | Интервал автоочистки в минутах (не используется). | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "CleanupIntervalMinutes": 30 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 10 | ||
| + | | Индексы по умолчанию | ||
| + | | Индексы, создаваемые для каждой коллекции. | ||
| + | | <syntaxhighlight lang="json" enclose="div"> | ||
| + | "DefaultIndexes": [ | ||
| + | "Date", | ||
| + | "Level", | ||
| + | "Logger", | ||
| + | "Properties.MethodName" | ||
| + | ] | ||
| + | </syntaxhighlight> | ||
|} | |} | ||
* Установка осуществляется запуском скрипта ''_Install.bat'' от имени администратора. [[Файл:Bm135.png|Запуск от имени администратора]] | * Установка осуществляется запуском скрипта ''_Install.bat'' от имени администратора. [[Файл:Bm135.png|Запуск от имени администратора]] | ||
| Строка 48: | Строка 112: | ||
* Для удаления службы необходимо запустить скрипт ''_UnInstall.bat'' от имени администратора. При этом будут удалены правила для входящих подключений. | * Для удаления службы необходимо запустить скрипт ''_UnInstall.bat'' от имени администратора. При этом будут удалены правила для входящих подключений. | ||
| + | |||
| + | ==Формат входящих сообщений== | ||
| + | ===Одиночный лог=== | ||
| + | <syntaxhighlight lang="json"> | ||
| + | { | ||
| + | "DatabaseName": "IntegrationService1", | ||
| + | "LogJson": "{ \\"Level\\": \\"Info\\", \\"Date\\": \\"2025-06-16T06:49:27Z\\", \\"Logger\\": \\"SomeClass\\", \\"Message\\": \\"Message text\\" }" | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===Пакет логов=== | ||
| + | <syntaxhighlight lang="json"> | ||
| + | { | ||
| + | "DatabaseName": "IntegrationService1", | ||
| + | "LogsJson": [ | ||
| + | "{ \\"Level\\": \\"Info\\", \\"Date\\": \\"2025-06-16T06:49:27Z\\", ... }", | ||
| + | "{ \\"Level\\": \\"Error\\", \\"Date\\": \\"2025-06-16T06:50:00Z\\", ... }" | ||
| + | ] | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ==Хранение логов== | ||
| + | * Каждая коллекция создаётся в формате: <префикс><год_месяц> (например: ''Info_2025_07''). | ||
| + | * Коллекции создаются и индексируются автоматически. | ||
| + | * Устаревшие коллекции удаляются при поступлении новых (если включена автоочистка). | ||
| + | * Собственные логи службы сохраняются в: | ||
| + | * ''Logs/RunLogger.txt'' — стандартные сообщения; | ||
| + | * ''Logs/ExceptionLogger.txt'' — ошибки. | ||
| + | |||
==Настройка IntegrationService Interlook для работы с сервисом службы логирования== | ==Настройка IntegrationService Interlook для работы с сервисом службы логирования== | ||
| − | ==Настройка конфигурационного файла web.config== | + | ===Настройка конфигурационного файла web.config=== |
| − | Настройки задаются в секции <code><appSettings></code> файла <code>web.config</code> | + | Настройки задаются в секции <code><appSettings></code> файла <code>web.config</code>. |
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | {| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse" | ||
| Строка 134: | Строка 227: | ||
|- style="vertical-align:text-top" | |- style="vertical-align:text-top" | ||
| 8 | | 8 | ||
| − | | Название базы данных для сервиса логирования | + | | Название базы данных для сервиса логирования '''*Обязательно для заполнения''' |
| Настройка, позволяющая указать в какую базу данных MongoDB записывать логи | | Настройка, позволяющая указать в какую базу данных MongoDB записывать логи | ||
| <syntaxhighlight lang="xml" enclose="div"> | | <syntaxhighlight lang="xml" enclose="div"> | ||
<add key="LogServiceDatabaseTarget" value="IntegrationService1"/> | <add key="LogServiceDatabaseTarget" value="IntegrationService1"/> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | |- style="vertical-align:text-top" | ||
| + | | 9 | ||
| + | | Количество попыток при ошибке отправки | ||
| + | | Число повторных попыток | ||
| + | | <syntaxhighlight lang="xml" enclose="div"> | ||
| + | <add key="LogServiceConnectionAttempts" value="10" /> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
| − | + | ===Дополнительно=== | |
| − | В | + | В секции <code><system.web></code> рекомендуется установить: |
| − | + | <syntaxhighlight lang="xml"> | |
<compilation debug="false" targetFramework="4.0"> | <compilation debug="false" targetFramework="4.0"> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Текущая версия на 19:31, 21 августа 2025
Содержание
Введение
Служба сервиса логирования 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.

- В Службах Windows добавляется служба 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" - инициализация кэша максимально производительная: каждый отель загружается в своем потоке, данные в кэше хранятся постоянно (возможны сбои). |
<add key="cachingTime" value="-1"/>
|
| 3 | Уровень использования процессора | parallelismDegree Уровень использования процессора при расчетах |
<add key="parallelismDegree" value="70"/>
|
| 4 | Включение логирования о использовании памяти сервера | LogCacheMemory Настройка служит для регулирования записи логов в таблицу базы данных. |
<add key="LogCacheMemory" value="2"/>
|
| 5 | Настройка для включения логирования с использование сервиса логирования | Настройка, позволяющая включать и выключать запись логов в сервис логирования
По умолчанию настройка установлена в значении 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 подключение к базе данных.
![]()
В разделе TLS/SSL установить значение Default.
![]()
Далее необходимо нажать кнопку Save&Connect.
Откроется окно ввода названия подключения.
Далее нажать кнопку Save&Connect.

После первой записи ошибок создастся база с названием, указанным в параметре LogServiceDatabaseTarget конфигурационного файла web.config.
![]()
Ошибки сохраняются в папку с соответствующим типом: Debug, Error, Fatal, Info, Trace, Warn.
При открытии папки с типом ошибки отобразятся все записи по ошибкам данного типа.
![]()
Параметры ошибок:
- id — идентификатор ошибки
- Date — дата и время ошибки
- Level — тип ошибки
- Message — метод в котором сформировалась ошибка
- Logger — наименование ПО в котором произошла ошибка
- DBUserID — наименование пользователя от которого сформирована ошибка
- EventInfo — объект данных
- Host
- ThreadID
- ProcessID
- ProcessName
- SessionId
- Host
- Exception — объект данных
- Type — тип ошибки
- Message — сообщение ошибки
- Stacktrace — трассировка стека
- Type — тип ошибки
