Логи системы

ADVANTA умеет записывать детальные технические логи о:

  • событиях
  • ошибках
  • производительности системы
  • процессе создания LINQ-контекста (с версии 3.27)

Все настройки детальных системных логов расположены здесь: Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках.

Этот инструмент пригодится вам, чтобы зафиксировать дефект и передать его в поддержку продукта.
По умолчанию логирование в Advanta не настроено и не включено.
  • Включить логирование производительности системных процессов – поставить чек-бокс можно только после того, как заполнено поле «Путь к логу производительности системных процессов»
  • Путь к логу производительности системных процессов – место для вставки абсолютной ссылки на сервер, куда будут записываться логи.
    Например:
    C:\Logs\
  • Максимальный размер логов производительности системных процессов, МБ – максимальный размер файлов с логами. Файлы логов не превысят указанный максимальный размер, и перезапись записей идет по кругу. При достижении максимального размера новые записи затирают самые старые.
  • Писать в логи производительности системных процессов все запросы – чек-бокс, который даёт записывать не только ключевые события.
  • Писать в логи производительности системных процессов в Seq – писать логи через Seq или нет. (Можно включить, только при условии, что поле «Url адрес системы обработки логов Seq» заполнено.)
  • Url адрес системы обработки логов Seq – Url адрес системы обработки логов Seq, развёрнутый на вашем сервере.
    Например:
     http://192.168.0.78:8888 
    Seq – система сбора и анализа логов. Подробно о том, что такое Seq.
    Инструмент позволяет собирать логи в более человечном представлении, преобразовывать их для визуализации в и аналитики (например, библиотека Serilog через Logstash в ElasticSearch; визуализация возможна через grafana).
  • Выгрузить логи производительности системных процессов – экспорт архива файлов с логами производительности системных процессов с вашего сервера (по пути, который указан в поле «Путь к логу производительности системных процессов»).
  • Выгрузить системные логи – НЕ ОТНОСИТСЯ к логированию производительности. Экспорт системного лога log4net. Лог настраивается отдельно в ходе первоначальной установки и настройки системы Advanta (см. следующий раздел на этой странице).
  • Исключения для логов производительности системных процессов – фильтр по URL. Укажите здесь все те фразы, которые содержатся в URL тех страниц, которые не должны логироваться. Это может относиться как ко всем однотипным объектам, так и к конкретным (если будет указаны их GUID).

Рисунок 1 – Система логирования производительности системных процессов

Обычно необходимость в логировании появляется из-за возникновения дефекта, который нужно зафиксировать и передать в службу поддержки Advanta.

  1. Запросите в поддержке файл 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>
  2. Поместите файл log4net.config в корень папки с веб-контентом системы.
    Корневая директория приложения по умолчанию имеет путь
     C:\inetpub\wwwroot\streamline 

    Путь по умолчанию, если вы устанавливали систему строго по инструкции.

  3. Перезапустите пул приложения системы, после перезапуска выполните несколько действий в системе и проверьте что в файлах лого начали появляться записи.
Файл log4net.config настраивает сразу 2 лога: системных событий и ошибок.

Как передать ошибку в поддержку

  1. Cохраните файл log4net.config в корневой директории Advanta.
  2. Воспроизведите ошибку.
  3. Выгрузите файл с логом и передайте его в поддержку вместе с данными о времени воспроизведения и ссылками на страницы системы, где выполнялось воспроизведение ошибки.

Если у вас есть доступ к директории, где размещается Advanta на вашем веб-сервере, вы можете скопировать эти файлы оттуда.

Если прямого доступа к файлам на сервере нет, выгрузите логи в интерфейсе Администратора в Advanta:

  1. Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
  2. Выгрузить логи производительности системных процессов → «Выгрузить»

Как читать лог событий

Название чек-бокса В логе Описание
Процедура очистки памяти системы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Копирование в табель не завершенных проектов из предыдущего периода
Проверка соединений пользователей с ExchangeExchangeServiceProvider.CheckConnectionsПроверка соединений пользователей с Microsoft Exchange Server.
Сбор статистики активности пользователейCollectingUserActivityStatistics
Напоминание о просроченных запросахRemindExpiredQuestionsРассылка напоминаний о просроченных запросах по формам и согласованиям.
Расширение активностей таймера в отдельных решенияхScheduler.Execute

Лог ошибок доступен только в директории вашего сервера, где размещается система Advanta.

Местоположение лога определяется конфигурацией файла log4net.config. Как правило, это:

C:\SL_Files\Documents\logs\ErrorLog.txt 

Вы можете получать лог производительности процессов системы.

По умолчанию лог не пишется! Все логи требуют ручной настройки и автоматически не собираются!

Чтобы лог начал собираться и записываться:

  1. Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
  2. В портлете «Система логирования производительности системных процессов» заполните поля:
    1. «Путь к логу производительности системных процессов» – путь к каталогу файловой системы на вашем сервере.
      Например: C:\Logs\
      • Создайте папку, где должен храниться лог, на веб-сервере.
        Если папки не существует, лог писаться не будет!
      • Проверьте, что у пользователя, из-под которого запущена Advanta на Microsoft Server есть доступ к этой папке (запись).
    2. поставьте чек-бокс «Включить логирование производительности системных процессов».
  3. если развернут Seq, можно настроить также логирование через него:
    1. вставьте ссылку на Seq на вашем сервере в поле «Url адрес системы обработки логов Seq»;
      Например: http://192.168.0.78:8888
    2. поставьте чек-бокс «Писать в логи производительности системных процессов в Seq»

Если у вас есть доступ к серверу, где хранятся документы для системы ADVANTA, вы можете скопировать их оттуда.
Файлы с логами лежат по тому адресу, который указан в поле Путь к логу производительности системных процессов (Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках → Система логирования производительности системных процессов).

Если доступа к файлам на сервере нет, выгрузите логи через интерфейсе ADVANTA:

  1. Администрирование → Общие настройки → Общие настройки → Система сбора информации об ошибках
  2. «Выгрузить логи производительности системных процессов» → Выгрузить

Данная опция используется в целях отладки.

Чтобы включить логирование операций создания 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'.