Логи Системы
Типы логов
ADVANTA умеет записывать детальные технические логи о:
- событиях;
- ошибках;
- производительности Системы;
- процессе создания LINQ-контекста.
Все настройки детальных системных логов расположены здесь: Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках.
Настройка логирования
- Включить логирование производительности системных процессов - поставить чек-бокс можно только после того, как заполнено поле «Путь к логу производительности системных процессов».
- Путь к логу производительности системных процессов - место для вставки абсолютной ссылки на сервер, куда будут записываться логи. Например:
C:\Logs\
- Максимальный размер логов производительности системных процессов, МБ - максимальный размер файлов с логами. Файлы логов не превысят указанный максимальный размер, и перезапись записей идет по кругу. При достижении максимального размера новые записи затирают самые старые.
- Писать в логи производительности системных процессов все запросы - чек-бокс, который даёт записывать не только ключевые события.
- Писать в логи производительности системных процессов в Seq - писать логи через Seq или нет. (Можно включить, только при условии, что поле «Url адрес системы обработки логов Seq» заполнено.)
- Url адрес системы обработки логов Seq - Url адрес системы обработки логов Seq, развёрнутый на вашем сервере. Например:
http://192.168.0.78:8888
Инструмент позволяет собирать логи в более человечном представлении, преобразовывать их для визуализации в и аналитики (например, библиотека Serilog через Logstash в ElasticSearch; визуализация возможна через grafana).
- Выгрузить логи производительности системных процессов - экспорт архива файлов с логами производительности системных процессов с вашего сервера (по пути, который указан в поле «Путь к логу производительности системных процессов»).
- Выгрузить системные логи - НЕ ОТНОСИТСЯ к логированию производительности. Экспорт системного лога
log4net. Лог настраивается отдельно в ходе первоначальной установки и настройки Системы ADVANTA (см. следующий раздел на этой странице). - Исключения для логов производительности системных процессов - фильтр по URL. Укажите здесь все те фразы, которые содержатся в URL тех страниц, которые не должны логироваться. Это может относиться как ко всем однотипным объектам, так и к конкретным (если будет указаны их GUID).
Ошибки и события
Обычно необходимость в логировании появляется из-за возникновения дефекта, который нужно зафиксировать и передать в службу поддержки ADVANTA.
Как настроить лог событий и лог ошибок
- Запросите в поддержке файл
log4net.configили скопируйте и сохраните текст ниже в файле с таким названием и расширением.<log4net> <appender name="GeneralAppender" type="SL.App.Log.RollingFileAppender, SL.App"> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="50" /> <maximumFileSize value="100MB" /> <staticLogFileName value="true" /> <immediateFlush value="false" /> <file value="C:\SL_Files\Documents\logs\all\log.txt" /> <layout type="SL.App.Log.TextFilePatternLayout, SL.App"> <conversionPattern value="%date [%thread] %level - %message%newline-Module: %property{Module}%newline-RequestUrl: %property{RequestUrl}%newline" /> </layout> </appender> <appender name="ErrorFatalAppender" type="SL.App.Log.RollingFileAppender, SL.App"> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="50" /> <maximumFileSize value="100MB" /> <staticLogFileName value="true" /> <immediateFlush value="false" /> <file value="C:\SL_Files\Documents\logs\ErrorLog.txt" /> <layout type="SL.App.Log.TextFilePatternLayout, SL.App"> <conversionPattern value="%date [%thread] %level - %message%newline-Module: %property{Module}%newline-RequestUrl: %property{RequestUrl}%newline" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="ERROR" /> <levelMax value="FATAL" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender> <root> <level value="ALL" /> <appender-ref ref="GeneralAppender" /> <appender-ref ref="ErrorFatalAppender" /> </root> </log4net>
- Поместите файл
log4net.configв корень папки с веб-контентом Системы. Корневая директория приложения по умолчанию имеет путьC:\inetpub\wwwroot\streamline
Путь по умолчанию, если вы устанавливали Систему строго по инструкции.
- Перезапустите пул приложения Системы, после перезапуска выполните несколько действий в Системе и проверьте что в файлах лого начали появляться записи.
log4net.config настраивает сразу 2 лога: системных событий и ошибок.Как передать ошибку в поддержку
- Cохраните файл
log4net.configв корневой директории ADVANTA. - Воспроизведите ошибку.
- Выгрузите файл с логом и передайте его в поддержку вместе с данными о времени воспроизведения и ссылками на страницы Системы, где выполнялось воспроизведение ошибки.
Как выгрузить лог событий
Если у вас есть доступ к директории, где размещается ADVANTA на вашем веб-сервере, вы можете скопировать эти файлы оттуда.
Если прямого доступа к файлам на сервере нет, выгрузите логи в интерфейсе Администратора в ADVANTA:
- Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
- Выгрузить логи производительности системных процессов → «Выгрузить».
Как читать лог событий
| Название чек-бокса | В логе | Описание |
|---|---|---|
| Процедура очистки памяти Системы | MemoryUsingStartPeriodicMaintenance | Выставляется значение параметра GCSettings.LargeObjectHeapCompactionMode в GCLargeObjectHeapCompactionMode.CompactOnce. Это приведет к сжатию кучи больших объектов (LOH во время следующей блокирующей сборки мусора второго поколения. Докуметация: https://docs.microsoft.com/ru-ru/dotnet/api/system.runtime.gcsettings.largeobjectheapcompactionmode |
| Расписание | FormRequestDistributionController.MigrateFormFromProjectTypes | Миграция старых автозапросов форм в новый тип. |
| Рассылка запросов на отчеты о статусе | DirectoryRequestService.MakeAutoRequests | Создание запросов на создание отчетов исполнителям. |
| Рассылка уведомлений о сроках проектов | ProjectsService.CheckProjectsTime | Раcсылаются события: 1. Превышение планируемого срока завершения проекта. Возникает, когда текущая дата больше планируемой даты завершения. 2. Превышение планируемого срока начала проекта. Возникает, когда текущая дата больше планируемой даты начала. 3. Уведомление о приближающемся завершении проекта. Возникает, когда текущая дата больше порога уведомления. |
| Рассылка писем | MailDistributor.SendMail | Рассылка писем, которые ранее не отправлялись. |
| Биллинг геймификации | GamingCharging.ScheduledCharge | Рассчет баланса и рейтинга в геймификации. |
| Автоматические запросы по формам | FormRequestDistributionController.ProcessAutoRequests | Формирование автоматических запросов пользователям по формам по расписанию. |
| Перестроение кубов по расписанию | CubeDataManager.UpdateCubesBySchedule | |
| Построение excel-отчетов по расписанию | CalculateExcelReportService.CalculateReportsBySchedule | |
| Пересчет значений виджетов | CalculateWidgetValuestService.CalculateWidgetValuesBySchedule | |
| Обновление Google токенов на подписку каналов | GoogleCalendarServiceManager.UpdateOutdatedSyncronizationChannels | |
| Отправка запросов на выполнение задач по связи FS с задержкой | QuestionsManager.RegisterProjectStartTaskWithDependencyDelay | |
| Копирование не завершенных проектов из предыдущего периода | CheckTimeSheetProjects | Копирование в табель не завершенных проектов из предыдущего периода |
| Проверка соединений пользователей с Exchange | ExchangeServiceProvider.CheckConnections | Проверка соединений пользователей с Microsoft Exchange Server. |
| Сбор статистики активности пользователей | CollectingUserActivityStatistics | |
| Напоминание о просроченных запросах | RemindExpiredQuestions | Рассылка напоминаний о просроченных запросах по формам и согласованиям. |
| Расширение активностей таймера в отдельных решениях | Scheduler.Execute |
Как выгрузить лог ошибок
Лог ошибок доступен только в директории вашего сервера, где размещается Система ADVANTA.
Местоположение лога определяется конфигурацией файла log4net.config. Как правило, это:
C:\SL_Files\Documents\logs\ErrorLog.txt
Логи производительности
Вы можете получать лог производительности процессов Системы.
Как настроить
Чтобы лог начал собираться и записываться: 1. Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
2. В портлете «Система логирования производительности системных процессов» заполните поля:
- «Путь к логу производительности системных процессов» – путь к каталогу файловой системы на вашем сервере.
Например:C:\Logs\- Создайте папку, где должен храниться лог, на веб-сервере. Если папки не существует, лог писаться не будет!
- Проверьте, что у пользователя, из-под которого запущена ADVANT на Microsoft Server есть доступ к этой папке (запись).
- Поставьте чек-бокс «Включить логирование производительности системных процессов».
3. Если развернут Seq, можно настроить также логирование через него:
- Вставьте ссылку на Seq на вашем сервере в поле «Url адрес системы обработки логов Seq». Например:
http://192.168.0.78:8888 - Поставьте чек-бокс «Писать в логи производительности системных процессов в Seq».
Как выгрузить
Если у вас есть доступ к серверу, где хранятся документы для Системы ADVANTA, вы можете скопировать их оттуда.
Файлы с логами лежат по тому адресу, который указан в поле Путь к логу производительности системных процессов (Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках → Система логирования производительности системных процессов).
Если доступа к файлам на сервере нет, выгрузите логи через интерфейсе ADVANTA:
- Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
- «Выгрузить логи производительности системных процессов» →
Выгрузить.
Логи создания LINQ-контекста
Данная опция используется в целях отладки.
Чтобы включить логирование операций создания LINQ-контекста, необходимо сперва включить логи ошибок log4net, затем добавить настройку в файле client.config: LinqToAdvantaLogGeneratedCode со значением 'true'.
<appSettings> ... <add key="LinqToAdvantaLogGeneratedCode" value="true" /> </appSettings>
Запись сгенерированного при перестроении LINQ-контекста C#-кода будет осуществляться в общий лог ошибок log4net.
В записях лога такие сообщения начинаются со строки «Building LINQ-context». Большинство записей статистического характера: отображают каких и сколько объектов обработано.
Запись, сообщение в которой начинается с «Building LINQ-context generatad C#-code» - содержит сгенерированный код. Это может быть огромная по размеру запись. Именно для неё введён параметр настройки LinqToAdvantaLogGeneratedCode в client.config.
Так как объём C#-кода при формировании LINQ-контекста может составлять несколько мегабайт, после использования и завершении отладки эту настройку следует выключить - установить в значение 'false'. Если LinqToAdvantaLogGeneratedCode имеет значение 'false' или отсутствует, то запись сгенерированного кода в лог не будет производиться.
По умолчанию значение этой опции в файле client.config установлено в значение 'false'.
